PDA

View Full Version : [PHP]Avviare un processo in background


matteogeniaccio
15-09-2008, 14:16
Salve a tutti.
Nel mio sito ho la necessità di eseguire uno script PHP mentre le pagine web vengono caricate normalmente, il fatto è che lo script impiega anche 10 secondi per essere eseguito, rallentando la navigazione.

Ho l'hosting windows con aruba, e quindi non posso utilizzare la shell o istruzioni come exec().

Per risolvere il problema ho impostato una fsockopen() sulla pagina web normale che invia una get allo script e poi chiude il socket, mentre sullo script in background ho inserito l'istruzione ignore_user_abort(true);

Vorrei sapere se questa è l'unica soluzione efficace per risolvere il problema, oppure esistono altri metodi migliori.

Grazie.

Torav
15-09-2008, 23:05
beh, direi che ajax è la tua soluzione! O almeno sarebbe la mia :p

Hactor
16-09-2008, 22:22
Salve a tutti.
Nel mio sito ho la necessità di eseguire uno script PHP mentre le pagine web vengono caricate normalmente, il fatto è che lo script impiega anche 10 secondi per essere eseguito, rallentando la navigazione.

Ho l'hosting windows con aruba, e quindi non posso utilizzare la shell o istruzioni come exec().

Per risolvere il problema ho impostato una fsockopen() sulla pagina web normale che invia una get allo script e poi chiude il socket, mentre sullo script in background ho inserito l'istruzione ignore_user_abort(true);

Vorrei sapere se questa è l'unica soluzione efficace per risolvere il problema, oppure esistono altri metodi migliori.

Grazie.

Per curiosità: di che script si tratterebbe? :asd:

matteogeniaccio
22-09-2008, 15:10
si tratta di uno script che carica informazioni da un database e da un server remoto, quindi la velocità è influenzata anche dallo stato della rete...

ciuhd
23-09-2008, 09:40
concordo con quanto scritto da torav...la migliore soluzione ajax!!

Più grezzamente per incominciare potresti caricare lo script php in questione dentro un iframe in modo da renderlo indipendente dalla pagina in cui si trova.

<iframe src="tuoscript.php"></iframe>