Celery:我可以使用Celery一次执行一个函数的实例吗



所以我有一个程序,例如运行函数:x,y,z。假设函数的执行时间为:

x -> 5 seconds
y -> 15 minutes
z -> 2 minutes

所以,我面临一个问题,当y被执行时,我为y得到另一个任务,它也开始再次执行y。所以我会同时执行2个y。

我想实现什么?Y一次只执行一次。一旦第一个Y执行完成,第二个Y就可以开始执行。

我试着寻找解决方案,我发现的是可以让我们一次执行一个任务(x/y/z(的文档。然而,我希望所有任务都能正常执行,就在我们获得2个y实例时,我们需要第二个实例等待第一个实例完成执行。

因此,我们需要队列看起来像:(工作(

X
Y -> Y
Z

我找到的解决方案会让它看起来像:

X-> Y-> Z -> Y, which is only one task at a time, doesn't matter which function.

这不是我想要的。

如果问题不清楚,请告诉我。

谢谢。

是的,它是可行的,并在Celery文档的"任务食谱"部分的"确保任务一次只执行一个"部分中进行了解释。

相关内容

  • 没有找到相关文章

最新更新