我正在使用以下命令运行我的服务器:
celery worker -Q q1,q2 -c 2
这表明我的服务器将处理队列q1
和上的所有任务q2
,并且我有 2 个工作人员正在运行。我的服务器应该支持 2 个不同的任务:
@celery.task(name='test1')
def test1():
print "test1"
time.sleep(3)
@celery.task(name='test2')
def test2():
print "test2"
如果我将我的test1
任务发送到 queueq1
和test2
to q2
,两个工作人员都将运行这两个任务。所以结果将是:
test1
test2
test1
test2
...
现在我需要的是我的一名工人处理test1
和另一名处理test2
。一种解决方案是像这样运行两个芹菜工人:
celery worker -Q q1 -c 1
celery worker -Q q2 -c 1
每个人处理 1 个队列。但我想让它们更清洁并使用-c 2
. 我找到了Celery Routing,但不确定这是否是我想要的。