Pregunta

¿PHP admite algo como Ampersand in Bash (bifurcado)? Digamos que quería usar Curl en 2 páginas web simultáneamente, por lo que Script no tiene que esperar antes de los Finnishes de comando de First Curl, ¿cómo podría uno lograr eso en PHP? Algo como esto en Bash:

 curl www.google.com &
 curl www.yahoo.com &
 wait
¿Fue útil?

Solución

¿PHP admite algo como Ampersand in Bash (bifurcado)?
No. Vea las otras respuestas, aunque sí señalo que la extensión PCNTL es solo UNIX.

... ¿Cómo podría uno lograr eso en PHP?*
Curl admite ejecutar múltiples descargas simultáneamente.

Otros consejos

Puedes usar popen o proc_open para abrir un proceso y dejarlo ejecutarse en segundo plano, pero no hay soporte de lenguaje para operaciones de fondo como lo hay para bash (que se realizó para ejecutar tareas, de todos modos; se hizo PHP para secuestrar cosas).

Usando PROC_OPEN, puede usar proc_get_status saber cuándo se terminan los procesos. Me temo que no hay wait equivalente.

Puede escribir métodos asíncronos si realmente lo desea, pero es mucho trabajo y probablemente una idea de diseño terrible si está utilizando PHP.

A menudo es preferible algún tipo de mecanismo de cola. Gearman es un mecanismo de cola de código abierto que puede usar. También tengo una publicación de blog en la cola de trabajo de Zend Server que habla sobre la ejecución de tareas de forma asincrónica ¿Te das cola? Introducción a la cola de trabajo de Zend Server.

También podría usar algo como las clases de colas de Zend Framework para implementar parte del trabajo asíncrono. Zend_queue

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top