RabbitMQ でプライオリティ キューを実装しようとしています。メーリング リストでは、複数のキューを使用することを推奨しています。各キューは異なる優先度レベルを表しています。
私の質問は、pika (またはおそらく他の python ライブラリ) を使用して、優先順位の高い順序で複数のキューをどのようにポーリングするのですか?
受け入れられた後にこの質問に出くわした場合に備えて。RabbitMQ には、優先順位を付けて 1 つのキューを設定できるプラグインがあります: https://github.com/rabbitmq/rabbitmq-priority-queue
デフォルトではすべての消費者が同じ優先順位を持っているので、pikaを使って消費者レベルでそれを素朴に行う方法はないと思います。
この問題を解決するために私ができることは、メーリングリストで提案されているように2つのキューを用意し、各キューに独自のコンシューマーを設定することです。各コンシューマーのコンシューマーコールバックでは、メッセージを直接処理する代わりに、メッセージを優先度キューに入れ、キューから最も優先度の高いメッセージを読み取って処理する関数を呼び出します。
同様の応答を持つ別の質問。