我在芹菜文档中读到了这个:
Task.rate_limit http://celery.readthedocs.org/en/latest/userguide/tasks.html#Task.rate_limit
请注意,这是每个工作人员的实例速率限制,而不是全局速率限制。要强制实施全局速率限制(例如,对于每秒最大请求数的API),您必须限制到给定队列。
如何对芹菜队列设置速率限制?
感谢您不要对此问题进行投票。
答案 0 :(得分:9)
原来不能在队列级别为多个工作人员完成。 可以在1个工作人员的队列级别完成IT。或者在每个工作人员的队列级别。
所以如果你对5名工人说10分钟/分钟。您的员工将每分钟处理多达50个工作岗位。
因此,要么一次只运行10个作业,要么选择一个工作人员。或者选择5名工人,限制为2 /分钟。
答案 1 :(得分:0)
http://docs.celeryproject.org/en/latest/userguide/workers.html#rate-limits
所以对于一个变通方法,也许你可以为每个队列设置一个任务(这在很多情况下都有意义),并将限制放在任务上。
答案 2 :(得分:0)
您可以在花卉中设置此限制>工人窗格。 在那里有一个指定的空白区域用于输入限制。 建议使用的格式如下所示:
可以通过在值中附加“/ s”,>“/ m”或“/ h”来指定速率限制,以秒,分钟或小时为单位。任务将在指定的>时间范围内均匀分布。
示例:“100 / m”(每分钟100个任务)。这将在同一工作器实例上启动两个任务之间强制执行最小延迟> 600毫秒。