【问题标题】:Celery rate_limit not imposing the limit芹菜 rate_limit 不施加限制
【发布时间】:2016-04-10 18:42:35
【问题描述】:

我有两个 rabbitmq 节点,每个节点为运行 Celery 的 5 个节点提供队列。

10 个工作节点中的每一个都以 4 的并发运行 Celery。

当我向每个 Celery 广播 rate_limit 时,速率似乎不是强加的。

我用来广播 rate_limit 的代码:

app = Celery('tasks', broker="amqp://%s:%s@%s/%s" % (config.rabbit_user, config.rabbit_pass, rabbit_ip, config.rabbit_vhost))

app.control.broadcast('rate_limit', arguments={'task_name': 'tasks.read', 'rate_limit': '100/s'})

据我了解,此限制是针对每个工作实例而不是全局的,因此我预计 10 个节点的每个 celery 工作人员每秒有 100 条消息。通常他们每秒消耗大约 500-600,但在广播之后,我在每个节点上每秒得到大约 1.6。我检查了日志,大约每 5 秒有 8 条消息。

将限制提高到 200/s 我得到了 2/s 和 2.4/s 之间的任何地方。

【问题讨论】:

    标签: python rabbitmq celery


    【解决方案1】:

    看起来这是一个问题,并已推动解决它。 https://github.com/celery/celery/issues/3166

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-18
      • 2022-11-16
      • 2017-06-29
      • 1970-01-01
      • 2015-03-29
      • 2012-05-01
      • 2021-08-21
      • 2012-03-27
      相关资源
      最近更新 更多