2011-12-22 15 views
6

Tenemos una gran aplicación web basada en PHP. Esta aplicación permite programar tweets y publicaciones en el muro y hay correos electrónicos programados que salen del servidor.Diferencia entre el uso de Message Queue vs Plain Cron Jobs con PHP

Por 'programado', quiero decir que estos son scripts PHP programados para ejecutarse en un momento determinado usando cron. Hay aproximadamente 7 archivos PHP que hacen los trabajos anteriores.

He estado escuchando acerca de Message Queues. ¿Alguien puede explicar si las Colas de mensajes son las más adecuadas en este escenario? ¿Message Queues ejecuta scripts PHP? ¿o tenemos que configurar esto de manera completamente diferente? ¿Cuáles son las ventajas/desventajas?

+0

22 Vistas. ¿Nadie? Alguna respuesta? –

Respuesta

5

Usando Crontab hacer tareas asíncronas (asíncronos de su código PHP) es un enfoque básico en el uso de un gestor de colas trabajo/tareas es uno elaborado y darle más control, potencia y escalabilidad/elasticidad .

Crontab son muy fáciles de manejar pero no ofrecen muchas funcionalidades. Es mejor para trabajos programados que para tareas asincrónicas.

Por otro lado, la implementación de una cola de tareas (y su message broker) requiere más tiempo. Primero debe elegir las herramientas correctas y luego aprender a implementarlas en su código PHP. Pero este es el camino a seguir en 2011.

Gracias a Dios, no lo hago PHP, pero he jugado un poco con Celery (junto con RabbitMQ) en Python proyectos; Estoy seguro de que puedes encontrar algo similar en el mundo PHP.

+0

Gracias, Stan! Es Message Queues invasivo. Es decir, implementar colas de mensajes requiere cambios de código PHP en la aplicación. –

+0

_A priori_ no lo es. ** pero ** el parámetro de la función demorada debe ser serializable y a veces puede tener algunas sorpresas porque algunos objetos no se manejan bien. – Stan

+0

yay. Esto es 2013 y aún la misma regla es válida. – om471987