2013-09-05 9 views
5

Uso il sedano e desidero inviare un'attività di trasmissione a un paio di lavoratori. Sto cercando di farlo come è descritta a http://docs.celeryproject.org/en/latest/userguide/routing.html#broadcast così creo semplice applicazione con compito:Messaggi broadcast in sedano

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

e app che ho fatto:

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

e poi ho cercato di inviare compito di lavoratori con:

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

o:

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

ma sfortunatamente nel primo modo il compito è inviare "normalmente" solo a un lavoratore in una volta - quindi se ho due lavoratori che il compito è fatto una volta o prima e una volta su un secondo lavoratore. In secondo luogo, non so dove viene svolto questo compito, perché su qualsiasi lavoratore non ne risulta alcun risultato. Forse qualcuno di voi saprà perché non funziona come trasmissione e cosa sto facendo male qui. Grazie in anticipo per l'aiuto.

risposta