根据Celery documentation,-Q/--queues
命令行选项可用于:
-Q, - 队列
为此工作人员启用的队列列表,以逗号分隔。默认情况下,启用所有已配置的队列。示例: -Q video,image
但是我不明白这里配置配置队列是什么意思。这是否意味着Celery已知的所有队列,包括默认队列?或者只是task_queues
配置选项中定义的那些? task_create_missing_queues
选项会影响这个吗?
答案 0 :(得分:1)
如果您还没有配置任何内容,它将从celery
队列消耗,您可以从日志中看到
celery worker -A t
-------------- celery@pavilion v4.0.2 (latentcall)
---- **** -----
--- * *** * -- Linux-4.4.0-79-generic-x86_64-with-Ubuntu-16.04-xenial 2017-06-09 10:39:14
-- * - **** ---
- ** ---------- [config]
- ** ---------- .> app: tasks:0x7f15cf9cdfd0
- ** ---------- .> transport: amqp://guest:**@localhost:5672//
- ** ---------- .> results: rpc://
- *** --- * --- .> concurrency: 4 (prefork)
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
--- ***** -----
-------------- [queues]
.> celery exchange=celery(direct) key=celery
您也可以将celery配置为默认使用一组队列,如此
from celery import Celery
from kombu import Queue
app = Celery(broker='amqp://guest@localhost//', backend='rpc')
app.conf.task_queues = (Queue('foo'), Queue('bar'))
现在所有工作人员默认使用foo
,bar
个队列。
-------------- [queues]
.> bar exchange=celery(direct) key=celery
.> foo exchange=celery(direct) key=celery