芹菜所有生成任务的状态



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

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

为此,您需要一个分布式锁,而芹菜本身不提供。

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

您可以通过设置来限制同时运行的一种类型的任务数:

rate_limit = “1000/m” 

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

相关内容

  • 没有找到相关文章