我正在运行(Django)Celery,用于将任务安排到远程工作人员w1,w2,w3。这些工作程序中的每一个都有自己的队列,他们正在使用“调度程序”来执行任务,这是主服务器上的另一个芹菜任务:
w1: q1
w2: q2
w3: q3
调度程序基于db检查调度任务,即如果根据任务的运行没有更新db,它将重新调度具有相同参数的任务。因此,如果一个或多个队列堆积,具有相同参数的多个任务(从我的应用程序的角度来看,重复)可能同时在多个队列中。
我看到了一些奇怪的行为:当多个队列中存在重复任务时,如果其中一个队列运行其任务实例,仅在几毫秒之前,另一个排队的“重复”任务将被执行。因此,所有任务突然同时执行,即使它们彼此分开排队。
是否有任何文档或其他参考资料可以解释此行为?是否已知行为,如果是这样,我该如何关闭它?我只想要运行这个任务的一个实例。