Pregunta

recomendarías usar beanstalkd [ http://kr.github.com/beanstalkd/ ] para

¿Procesamiento asíncrono en PHP?

Necesito algunos comentarios / pros-contras de cualquier persona que haya utilizado esta biblioteca.

Gracias,

¿Fue útil?

Solución

He utilizado Beanstalk en la producción, y también durante las pruebas se enviaron millones de mensajes simples a través de él, generalmente en masa, pero el sistema de producción tuvo más de 100,000 tareas realizadas hasta que me fui de la empresa. Puede que aún esté en ejecución, en cuyo caso sería de decenas de millones ser ahora, o más, si hubieran extendido su uso, como lo había planeado.

Lo recomendaría, ya que tiene varios puntos excelentes.

  • los tubos con nombre se pueden usar para limitar los trabajos que se entregan. Observo un tubo basado en el nombre de host de la máquina, que limita el lugar donde se está ejecutando un trabajador (útil para los archivos cargados que solo se almacenan en un servidor en particular).
  • Los retrasos se pueden usar para establecer eventos futuros
  • Las últimas versiones del servidor también admiten el registro de bin, lo que da persistencia, aunque nunca se ha bloqueado en mí.

Mi primera tarea que hice fue el procesamiento de imágenes, y hacer ese trabajo fuera de un proceso Apache / mod_php me permitió redimensionar imágenes más grandes sin afectar al servidor (soplando el servidor web). Con una cola ligeramente cargada, había creado las miniaturas antes de que la página se actualizara después de la carga.

Hay muchas otras tareas potenciales que también podrían procesarse de forma asíncrona.

El único problema que he tenido fue asegurarse de que los trabajadores terminaran sin incidentes, o de que se detectara algún error para que el trabajo pudiera ser "enterrado", lo que garantiza que el trabajo no se haya vuelto a poner en la cola para ejecutarse de nuevo (y hacer que el trabajador se bloquee de nuevo).

Hacer que los trabajadores también se reinicien para borrar la memoria también puede ser útil, ya que PHP es menos adecuado para procesos de larga ejecución.

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