芹菜有时会给一个工人提供所有工作

时间:2015-06-30 08:38:28

标签: python multithreading celery

我们有一个运行一系列长任务(有时长达10分钟)的系统,有时候(我无法重现它,但我在日志中看到它)芹菜的行为就像这样(我提供一个示例& #34;时间表"发生的事情):

  • 所有工人都是免费的
  • 很多工作被送到芹菜
  • 芹菜在工人之间平等分配工作
  • celery autoscales以容纳新工作
  • 所有(或几乎所有)工作正常结束
  • 芹菜为一名工人分配所有新工作
  • 当所有其他工人闲置时,工作会等待一名工作过度的工人
  • 过度劳累的工人被芹菜杀死后一切恢复正常

因此,有些工作有时延迟了半小时。

这就是我们如何经营芹菜:

celery -A application worker -l INFO --autoscale=100,12

celery -A application beat -l INFO

我们使用主管来运行一切。芹菜经纪人是RabbitMQ。

这种行为可能是什么原因以及如何避免这种情况?

谢谢!

0 个答案:

没有答案