Domanda

PHP supporta qualcosa come AMPERS e in Bash (biforcazione)? Diciamo che volevo usare Curl su 2 pagine Web contemporaneamente, quindi lo script non deve aspettare prima del primo comando Curl finlandese, come si potrebbe raggiungere in PHP? Qualcosa di simile a questo in Bash:

 curl www.google.com &
 curl www.yahoo.com &
 wait
È stato utile?

Soluzione

PHP supporta qualcosa come AMPERS e in Bash (biforcazione)?
No. Guarda le altre risposte, anche se sottolineo che l'estensione PCNTL è solo UNIX.

... come si può raggiungere in PHP?*
Curl supporta l'esecuzione di più download contemporaneamente.

Altri suggerimenti

Puoi usare popen o proc_open aprire un processo e lasciarlo funzionare in background, ma non esiste un supporto linguistico per le operazioni di base come esiste bash (che è stato realizzato per eseguire compiti, comunque; PHP è stato realizzato per roba di scripting).

Usando Proc_open, è quindi possibile utilizzare proc_get_status sapere quando i processi vengono terminati. Temo che non ci sia wait equivalente.

Puoi scrivere metodi asincroni se vuoi davvero, ma è un sacco di lavoro e probabilmente un'idea di design terribile se stai usando PHP.

È spesso preferibile una sorta di meccanismo di accodamento. Gearman è un meccanismo di accodamento open source che è possibile utilizzare. Ho anche un post sul blog sulla coda del lavoro di Zend Server che parla di compiti in modo asincrono Fai la fila? Introduzione alla coda di lavoro del server Zend.

Puoi anche usare qualcosa come le classi di coda di Zend Framework per implementare parte del lavoro asincrono. Zend_queue

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top