2010-04-09 13 views
5

En primer lugar, hola, esta es mi primera pregunta sobre el desbordamiento de pila, así que haré todo lo posible para comunicarme correctamente.¿Forma recomendada de gestionar procesos persistentes de script PHP?

El título de mi pregunta puede ser un poco ambigua así que me extienda sobre ella de inmediato:

Estoy planeando un proyecto que consiste en tomar varias entradas de datos del API "transmisión", Twitter es un ejemplo. Tengo un script básico codificado en PHP que se ejecuta indefinidamente desde la línea de comandos, tomando la información de la API de transmisión de Twitter y haciendo cosas muy básicas con ella.

Mi objetivo final es tener varios procesos en ejecución (tal vez daemonized utilizando la clase PEAR System Daemon), y me gustaría poder gestionarlos desde algún proceso de gobierno (también un script PHP). Por administración me refiero a operaciones básicas como detener/iniciar y (lo más importante) reiniciar automáticamente un proceso que se bloquea.

Agradecería cualquier sugerencia sobre la mejor manera de abordar este ángulo de gestión de procesos. Una vez más, me disculpo si esta pregunta es demasiado extensa: se agradecerían sugerencias sobre líneas de investigación más enfocadas si es necesario. Gracias por leer y espero sus respuestas.

+0

FYI He configurado "Supervisor", una aplicación de Python para la gestión de procesos, ¡y esto parece hacer exactamente lo que necesito! Esto se vinculó desde [Ejecutar script php como proceso daemon] (http://stackoverflow.com/questions/2036654/run-php-script-as-daemon-process) - señalado a continuación por Pekka (¡gracias de nuevo!) . El supervisor mismo se puede encontrar [aquí] (http://supervisord.org/). – BigglesZX

Respuesta

3

Creo que la forma recomendada de tener procesos persistentes no lo está haciendo en PHP en absoluto;)

pero aquí hay algunas preguntas relacionadas, parece que algunos de los comentarios contiene algunos buenos pensamientos y experiencia en hacer esto .

Más en el search.

+0

¡Eso es super! ¡El segundo enlace que publicas de hecho genera muchos enlaces útiles! Investigando ahora. Gracias por tu contribución :). – BigglesZX

2

Esto no funciona en el contexto de ejecutar un script PHP persistente, pero Cron es realmente útil para ejecutar scripts en diferentes momentos y en diferentes intervalos. En lugar de tener un script PHP que se ejecuta constantemente, detener e iniciar otros scripts, puede ejecutarlos todos usando Cron en un intervalo adecuado.

+0

Según los requisitos, este es un buen enfoque. También puede usar esto para monitorear un proceso en curso; compruebe cada minuto si todavía está funcionando y reinícielo automáticamente si falla. Depende de cuánto tiempo de inactividad puede tomar, pero se trata de lecturas de lectura, luego cada minuto suena bien. –

0

La forma en que desea hacerlo es posible, pero será complejo y relativamente difícil de mantener.

Si lo miras de otra manera, en lugar de seguir navegando de forma continua, podrías recopilar datos a intervalos regulares. Técnicamente su transmisión continua, especialmente con feeds como Twitter.

Si parte de la alimentación se extrae en tiempo real, es posible que se pierda algunos datos entre entonces quizás no sea una opción para usted.

Es mucho más fácil administrar procesos que se inician y detienen y que administran pequeñas cantidades de datos. Todos podrían estar revisando una base de datos de control y actualizando el estado. Además, usar cron es un verdadero placer.

Así es como lo haría en estos días.

Cuestiones relacionadas