Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    111

    eseguire script in background

    ciao a tutti
    ho scritto un rozzo e grezzo programma tipo spider, per indicizzare nel database le mie pagine.
    ora il file in cui si trova viene chiamato solo quando inserisco un nuovo commento o thread nel blog. una volta finito il suo lavoro con un redirect lo mando a una pagina con dell'output.
    il problema è che questo script non è un campione di velocità e comporta qualche secondo d'attesa per i thread più lunghi.

    la mia idea sarebbe quella di chiamarlo quando serve e farlo lavorare in modo invisibile all'utente, eliminando i tempi d'attesa.
    spulciando in giro ho trovato che è suggerito l'uso della funzione EXEC, ma non ho capito molto bene come funziona, ne la sintassi che devo usare.

    ho provato così ma non funziona.
    Codice PHP:
    $arg MYROOT "servizio/srch_engine.php?red=" $_GET['thread'] ;
    exec('$arg > /dev/null 2>&1 &'); 
    è possibile usare questa funzione per aprire dei file php?
    come devo scrivere il percorso e i parametri nell'argomento della funzione?
    che significato hanno questi paramentri ( > /dev/null 2>&1 & che ho trovato suggeriti per avviare un processo in background)?
    devo fare qualcosa per "chiudere" lo script una volta finito il lavoro? tipo un exit o comandi simili

  2. #2
    Per questo genere di cose è meglio utilizzare un cron od uno scheduled task (a seconda del sistema operativo).

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    111
    cioè dei task programmati per il server?
    domani mi cerco un po' di documentazione. grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    111
    il metodo che mi suggerisci presuppone un'interazione con il sistema operativo del server.
    il server su cui andrà il mio sito sarà quello di qualche hoster di cui non conosco ancora il sistema operativo, anche se verosimilmente potrebbe essere linux, che non ho intenzione di installare per testare lo script.

    ad ogni modo preferirei lavorare sempre all'interno di apache.
    se è possibile ottenere lo stesso risultato con una funzione di php, preferirei sfruttarla.
    dunque qualcuno mi potrebe dare qualche delucidazione su EXEC?
    grazie

  5. #5
    E' molto più probabile che ti sia permesso utilizzare un cronjob (es. tramite pannello di amministrazione) piuttosto che lanciare PHP in background tramite exec() e simili.

    In ogni caso, esistono sempre servizi come http://www.webcron.org/.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.