我正试图向切利提出申请。它应该在少数工人身上工作,不同的工人从不同的队列消费。我有这样的东西:
@celery.task
def task1():
do_something()
task2.delay()
@celery.task
def task2()
do_something()
所以在worker1上运行的task1应该调用task2,task2应该被发送到使用worker2的队列。问题是它不起作用。我收到了AsyncResult的id,但此任务的状态一直处于挂起状态。当我从python控制台手动调用task2时,它可以正常工作。 也许我做错了什么,不可能从另一个任务中运行一个任务? 还有一件事。Worker1正在执行task1并将task2发送到他不从中消费的队列-来自该队列的仅消耗worker2
这里有一个简单的例子,我认为它可以实现你想要的。在
当使用指定队列列表的-Q参数调用时
^{pr2}$它产生以下输出:
有两个队列(q1、q2)和两个工人。在
作为比较,如果您在没有-Q参数的情况下调用它,或者只使用一个队列:
“反向”任务不会被调用,因为添加到q2中的celery将不知道。在
希望有帮助。在
相关问题 更多 >
编程相关推荐