1

如何在任务结束后立即删除队列中的所有任务?

我想要这样的东西(删除 celery / rabbitmq 中的所有待处理任务),但对于 celery 3.0.

谢谢

编辑:

从芹菜文档: http ://docs.celeryproject.org/en/latest/faq.html#how-do-i-purge-all-waiting-tasks

我的代码如下所示:

从芹菜进口 current_app 作为芹菜

@task
def task_a():
    celery.control.purge()

我期待,如果我发出 5 个任务,只有第一个会运行。不知何故,我不这样做。

谢谢

4

1 回答 1

1

这些任务可能已经由工作人员预取。要确定是这样,请尝试运行的任务数量超过活动工作人员乘以预取乘数(见下文),并检查返回的结果是什么celery.control.purge()。您可以使用配置参数 CELERYD_PREFETCH_MULTIPLIERCELERY_ACKS_LATE.

于 2013-11-08T17:20:26.723 回答