簡體   English   中英

Celery rate_limit 不施加限制

[英]Celery rate_limit not imposing the limit

我有兩個 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'})

根據我的理解,這個限制是針對每個 worker 實例而不是全局的,因此我期望 10 個節點的每個 celery worker 每秒有 100 條消息。 通常他們每秒消耗大約 500-600,但是在廣播之后我在每個節點上每秒大約消耗 1.6。 我檢查了日志,每 5 秒大約有 8 條消息。

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

看起來這是一個問題,並已推動解決它。 https://github.com/celery/celery/issues/3166

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM