Obserwowałem selera docs, aby zdefiniować 2 kolejki na moim komputerze.Django/Seler wiele kolejek na localhost - routing nie działa
Moje ustawienia seler:
CELERY_ALWAYS_EAGER = True
CELERY_TASK_RESULT_EXPIRES = 60 # 1 mins
CELERYD_CONCURRENCY = 2
CELERYD_MAX_TASKS_PER_CHILD = 4
CELERYD_PREFETCH_MULTIPLIER = 1
CELERY_CREATE_MISSING_QUEUES = True
CELERY_QUEUES = (
Queue('default', Exchange('default'), routing_key='default'),
Queue('feeds', Exchange('feeds'), routing_key='arena.social.tasks.#'),
)
CELERY_ROUTES = {
'arena.social.tasks.Update': {
'queue': 'fs_feeds',
},
}
i otwarte dwa okna terminala, w virtualenv mojego projektu i pobiegł następujące polecenia:
terminal_1$ celery -A arena worker -Q default -B -l debug --purge -n deafult_worker
terminal_2$ celery -A arena worker -Q feeds -B -l debug --purge -n feeds_worker
co ja dostać jest to, że wszystkie zadania są przetwarzane przez obie kolejki.
Moim celem jest posiadanie jednej kolejki do przetwarzania tylko jednego zadania zdefiniowanego w CELERY_ROUTES
i domyślnej kolejki do przetwarzania wszystkich innych zadań.
ja również po tej SO question, rabbitmqctl list_queues
powraca celery 0
i działa rabbitmqctl list_bindings
powraca exchange celery queue celery []
dwukrotnie. Restartowanie króliczego serwera niczego nie zmieniło.
Użyłem nowego formatu "task_queue" na selerze 3.1. Używanie "CELERY_ROUTES" działa. – Netro