0
私は、それぞれがCeleryを実行している5ノードのキューを提供する2つのrabbitmqノードを持っています。 Celery rate_limitは制限を課さない
10労働者の各
は、私は各セロリにRATE_LIMITをブロードキャスト4の同時性とセロリを実行するノード、レートが課さ1ではないようです。
私はRATE_LIMITをブロードキャストするために使用するコード:
app = Celery('tasks', broker="amqp://%s:%[email protected]%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個のノードの各セロリの労働者のための毎秒100件のメッセージを期待してい。通常、彼らは毎秒約500-600を消費していますが、ブロードキャスト後はすべてのノードで約1.6 /秒を得ます。ログを確認したところ、5秒ごとに約8件のメッセージが表示されます。
制限を200/sに上げると、私は2/sから2.4/sの間になります。