Dev makinemde 2 sıra tanımlamak için kereviz docs'u takip ettim.Django/Celery localhost'ta birden çok kuyruk - çalışmayan yönlendirme
Benim kereviz ayarları:
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 Projemin virtualenv, iki uç pencere açıldı ve aşağıdaki komutları koştum:
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
ne ben olsun tüm görevler tarafından işleniyor olmasıdır her iki kuyrukta.
Amacım, tüm diğer görevleri işlemek için CELERY_ROUTES
'da tanımlanan bir görevi ve varsayılan sıranı işlemek için bir sıraya sahip olmaktır.
rabbitmqctl list_queues
döner
celery 0
izledi ve iki kez
rabbitmqctl list_bindings
döner
exchange celery queue celery []
çalışan. Tavşan sunucusunu yeniden başlatmak hiçbir şeyi değiştirmedi.
Kereviz 3.1 üzerinde yeni biçim 'task_queue' kullanıyordum. 'CELERY_ROUTES' kullanımı çalışıyor. – Netro