芹菜先入先出不工作使用python



芹菜任务

@app.task()
def single_task(delay):
"""Run task."""
if delay:
sleep(10)
print("ran ...")
return True

终端1

>>> from settings.celery import single_task
>>> single_task(True)
ran ...
>>> 

终端2

>>> from settings.celery import single_task
>>> single_task(False)
ran ...
>>> 

我正在使用django的芹菜任务我试图实现在队列上运行任务,所以当在第一个终端我运行它将延迟10秒和当我调用第二个终端时,它将立即等待第一个终端完成,即10秒

但是,现在当我调用第一个终端需要10秒当我在10秒前打到第二终端时它不是等待首先完成,我期待它等待10秒,直到第一个任务作为第二个任务完成,没有延迟

。查找先进先出

我真的不确定fifo是否是你所追求的。您可以在代理中指定一个fifo队列,并且只有一个工作者,这隐式地保证在第二个任务开始之前完成第一个任务。然而,先进先出并不等同于保证第一个任务在第二个任务之前完成。这似乎也有点违反直觉的消息传递基础设施要实现什么。

然而,如果你需要这个功能,因为你的任务相互依赖,你可能想要查看工作流,特别是链。

最新更新