2013-09-05 14 views
5

Kereviz kullanıyorum ve birkaç işçiye yayın görevi göndermek istiyorum. Ben bu yüzden görev ile basit bir uygulama oluşturmanız o http://docs.celeryproject.org/en/latest/userguide/routing.html#broadcast üzerinde açıklanmıştır gibi yapmaya çalışıyorum:Kereviz'de mesaj mesajları

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

ve app yaptığım:

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

ve sonra işçilere görevi göndermeye çalışıyordu ile:

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

ya:

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

ama ilk etapta talihsiz bir iş, bir kerede yalnızca bir işçiye "normal" yolluyor - yani iki işçim varsa, görev bir veya iki kez ve bir kez de ikinci bir işçiye yapılır. İkinci olarak, bu görevin nerede yapıldığını bilmiyorum çünkü herhangi bir işçide bunun bir sonucu yok. Belki biriniz neden yayın gibi çalışmıyor ve neyi yanlış yaptığımı bileceksiniz. Yardım için şimdiden teşekkür ederiz.

cevap

İlgili konular