使用带有Django 1.11和Redis的Celery 4.1.0作为代理,具有以下抽象配置,
CELERY_IMPORTS = ('my_app.celery_tasks',) # Can see the list of tasks in the workers log, so the import works.
CELERY_TASK_DEFAULT_QUEUE = 'default'
CELERY_TASK_QUEUES = (
Queue('default', Exchange('default'), routing_key='default.#'),
Queue('my-queue', Exchange('my-queue'), routing_key='my-queue.#'),
)
CELERY_TASK_ROUTES = {
# 'my-celery-task': {'queue': "my-queue"},
'my_app.celery_tasks.*': {'queue': "my-queue"},
}
运行2名工作人员从'default'和'my-queue'中使用任务。
my-celery-task 是@task
中的一个名为my_app/celery_tasks.py
,如果我取消注释,它会按预期路由到“我的队列” CELERY_TASK_ROUTES
中的第一行。
但我需要的是将my_app/celery_tasks.py
中定义的所有任务路由到'my-queue'。在此处docs之后,但任务仍然被路由到“默认”队列。有什么帮助吗?
答案 0 :(得分:1)
使用CELERY_ROUTES
代替CELERY_TASK_ROUTES
。