私はrabbitmqとceleryを使用してセットアップを行い、ワーカーはそれぞれ4つのインスタンスを持つ4つのマシンで実行しています。基本的に同じバックエンド関数を呼び出す2つのタスク関数が定義されていますが、そのうちの1つはprocess_transaction
rate_limitが定義されていない名前で、もう1つは。で呼び出されslow_process_transaction
ていrate_limit="6/m"
ます。タスクはrabbitmqの異なるキューに移動しslow
ますnormal
。
奇妙なことに、両方のタスクにrate_limitが適用されています。celery.control.rate_limit
を使用してrate_limitを変更しようとしても、process_transaction
で変更しても実効レートは変更されず、slow_process_transaction
名前を使用すると両方の実効レートが変更されます。
何が悪いのかについて何か考えはありますか?