如何对芹菜队列加价?

时间:2015-01-30 07:45:01

标签: celery

我在芹菜文档中读到了这个:

Task.rate_limit http://celery.readthedocs.org/en/latest/userguide/tasks.html#Task.rate_limit

请注意,这是每个工作人员的实例速率限制,而不是全局速率限制。要强制实施全局速率限制(例如,对于每秒最大请求数的API),您必须限制到给定队列。

如何对芹菜队列设置速率限制?

感谢您不要对此问题进行投票。

3 个答案:

答案 0 :(得分:9)

原来不能在队列级别为多个工作人员完成。 可以在1个工作人员的队列级别完成IT。或者在每个工作人员的队列级别。

所以如果你对5名工人说10分钟/分钟。您的员工将每分钟处理多达50个工作岗位。

因此,要么一次只运行10个作业,要么选择一个工作人员。或者选择5名工人,限制为2 /分钟。

答案 1 :(得分:0)

嘿,我正试图找到一种方法对队列进行速率限制,我发现Celery无法做到这一点,但是Celery可以控制每个任务的速率,请看:

http://docs.celeryproject.org/en/latest/userguide/workers.html#rate-limits

所以对于一个变通方法,也许你可以为每个队列设置一个任务(这在很多情况下都有意义),并将限制放在任务上。

答案 2 :(得分:0)

您可以在花卉中设置此限制>工人窗格。 在那里有一个指定的空白区域用于输入限制。 建议使用的格式如下所示:

  

可以通过在值中附加“/ s”,>“/ m”或“/ h”来指定速率限制,以秒,分钟或小时为单位。任务将在指定的>时间范围内均匀分布。

     

示例:“100 / m”(每分钟100个任务)。这将在同一工作器实例上启动两个任务之间强制执行最小延迟> 600毫秒。