Używam selera i chcę wysłać zadanie transmisji do kilku pracowników. Staram się robić to jak jest opisane na http://docs.celeryproject.org/en/latest/userguide/routing.html#broadcast więc stworzyć prostą aplikację z zadania:Wiadomości rozgłoszeniowe w selerze
@celery.task
def do_something(value):
print value
iw aplikacji zrobiłem:
from kombu.common import Broadcast
CELERY_QUEUES = (Broadcast('broadcast_tasks'),)
CELERY_ROUTES = {'my_app.do_something': {'queue': 'broadcast_tasks'}}
a potem starałem się wysłać zadanie do pracowników z:
my_app.do_something.apply_async(['222'], queue='broadcast_tasks')
czyli
my_app.do_something.apply_async(['222'])
, ale niestety w pierwszym zadaniu zadanie jest wysyłane "normalnie" tylko jednemu pracownikowi w jednym czasie - tak więc jeśli mam dwóch pracowników niż zadanie jest wykonywane raz lub pierwszy i raz na drugi pracownik. Po drugie, nie wiem, gdzie jest wykonywane to zadanie, ponieważ na jakimkolwiek pracowniku nie ma żadnego rezultatu. Może ktoś z Was będzie wiedział, dlaczego to nie działa jak transmisja i co robię źle tutaj. Z góry dziękuję za pomoc.
czy to działa teraz? – ealeon