Transmisión de mensajes en apio.

Estoy usando apio y quiero enviar la tarea de transmisión a un par de trabajadores. Intento hacerlo como se describe en http://docs.celeryproject.org/en/latest/userguide/routing.html#broadcast, así que creo una aplicación sencilla con la tarea:

@celery.task def do_something(value): print value 

y en la aplicación hice:

 from kombu.common import Broadcast CELERY_QUEUES = (Broadcast('broadcast_tasks'), ) CELERY_ROUTES = {'my_app.do_something': {'queue': 'broadcast_tasks'}} 

Y luego estaba tratando de enviar la tarea a los trabajadores con:

 my_app.do_something.apply_async(['222'], queue='broadcast_tasks') 

o:

 my_app.do_something.apply_async(['222']) 

pero, desafortunadamente, la tarea de primera forma se envía “normalmente” solo a un trabajador a la vez, por lo tanto, si tengo dos trabajadores, la tarea se realiza una vez o la primera y una vez en el segundo trabajador. En segundo lugar, no sé dónde se realiza esta tarea, porque para cualquier trabajador no hay resultado de ello. Tal vez alguien de Usted sabrá por qué no funciona como transmisión y qué estoy haciendo mal aquí. Gracias de antemano por la ayuda.

    ¿Qué agente estás usando?

    Si está utilizando Redis, actualmente no funcionará como se explica en este hilo:

    https://groups.google.com/forum/#!searchin/celery-users/broadcast/celery-users/s4v_0ndiLT8/rJSME59TQ4YJ

    Estoy usando RabbitMQ y funciona bien.