2011-06-28 15 views
7

Tengo un único intercambio RabbitMQ con una sola cola. Deseo crear un daemon que ejecute varios subprocesos y trabaje a través de esta cola lo más rápido posible.Consumir una cola de mensajes rabbitmq con varios hilos (Python Kombu)

El "trabajo" implica la comunicación con servicios externos, por lo que habrá un buen nivel de bloqueo dentro de cada consumidor. Como tal, quiero tener múltiples hilos que traten todos los mensajes de la misma cola.

Puedo lograr esto consumiendo la cola en mi hilo primario y luego cultivando el trabajo entrante en un conjunto de otros hilos, pero ¿hay alguna manera de lanzar múltiples consumidores, cada uno dentro de su propio contexto enhebrado?

Respuesta

3

Eche un vistazo a celery - está diseñado para poner en cola y procesar tareas desde un intermediario de AMPQ (pero también funciona con otros servidores de cola). Maneja la concurrencia multiproceso o multiproceso y hace que sea muy fácil crear y consumir tareas.

+0

Esto restringe a python solamente, lo que puede no ser ideal ya que rabbitmq es independiente del lenguaje. ¿Existe un paquete independiente de idioma para la distribución de tareas? – liang

Cuestiones relacionadas