我有多个队列,假设这些队列Q1
和Q2
。
我也有一些任务,其中之一是T1
.
如何配置 Celery,以便工作人员只从Q1
获取T1
,而从不接受Q2
的T1
?
您可以使用芹菜应用程序实现此目的。 将不同类型的任务注册到不同的应用程序,并仅在这些应用程序上运行工作线程(例如,请参阅-A myapp
Celery worker 命令上的设置)。
或者,如果您遵循使用不同队列的更简单路线,您也可能取得成功。因此,如果您设法仅将 T1 发送到名为 queue1 的队列,将 T2 发送到队列 2,则可以在芹菜工人上使用选项-Q queue1
,以便它仅从队列 1 中获取任务。
当你启动你的工作线程时,你可以为他指定一个队列
celery -A proj worker -Q queue_name