2013-09-05 42 views
5

Tôi đang sử dụng cần tây và muốn gửi công việc phát sóng cho một vài công nhân. Tôi đang cố gắng để làm điều đó như được mô tả trên http://docs.celeryproject.org/en/latest/userguide/routing.html#broadcast vì vậy tôi tạo ra ứng dụng đơn giản với nhiệm vụ:Tin nhắn phát sóng trong cần tây

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

và trong ứng dụng của tôi thực hiện:

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

và sau đó tôi đã cố gắng để gửi nhiệm vụ cho người lao động với:

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

hay:

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

nhưng không may trong nhiệm vụ đầu tiên là gửi "thông thường" chỉ cho một công nhân trong một thời gian - vì vậy nếu tôi có hai công nhân hơn công việc được thực hiện một lần hoặc lần đầu tiên và một lần vào công nhân thứ hai. Theo cách thứ hai, tôi không biết công việc này được thực hiện ở đâu, bởi vì bất kỳ nhân viên nào cũng không có kết quả. Có thể ai đó của Bạn sẽ biết tại sao nó không hoạt động như phát sóng và những gì tôi đang làm sai ở đây. Cảm ơn trước sự giúp đỡ.

Trả lời

Các vấn đề liên quan