Celery都生成任务状态

时间:2013-10-01 09:40:36

标签: django queue celery

Django在一个脚本运行中通过链产生多个 Celery 任务(例如,如果在浏览器中打开,则通过延迟方法调用1000个任务)。

如果在先前脚本运行中排队的任务仍在运行,我需要一些限制新任务生成的东西。

2 个答案:

答案 0 :(得分:0)

你需要一个分布式锁,芹菜本身不提供。

对于这些类型的锁,我发现redis.Lock对大多数情况都很有用。如果您需要信号量,可以使用redis的atomic incr / decr函数以及某种监视机制来确保您的进程仍在运行。

答案 1 :(得分:0)

您可以通过设置:

来限制同时运行的一种类型的任务数量
rate_limit = “1000/m” 

=>每分钟只能运行1000个此类任务。 (见http://docs.celeryproject.org/en/latest/userguide/tasks.html#list-of-options