AnyEvent::RabbitMQ を使用する RabbitMQ perl ライブラリ Net::RabbitFoot を使用しようとしています。RabbitMQ チュートリアルによると、 prefetch_count を 1 に設定すると、別のメッセージで既にビジー状態のワーカーにメッセージをディスパッチしてはならないため、公平なディスパッチが保証されます。ただし、Perl 実装のNet::RabbitFootは、こちらの 54 行で説明されているように qos を設定した後でも、そのようには機能しないようです。仕事。これがqosの実装です。なぜこれが起こっているのかを理解するのを手伝ってもらえますか? ライブラリのバグですか?
前もって感謝します。
編集:
これが私のセットアップです。2 つのコンシューマーが同じ名前のキューに接続されています。多くのメッセージをディスパッチすると、次のパターンが見られます。コンシューマ 1: Msg1、Msg3、Msg5 ... コンシューマ 2: Msg2、Msg4、... すべてのメッセージは同じキューからのものです。Msg3 がコンシューマ 1 を占有している場合、Msg5 はコンシューマ 1 に送信され、コンシューマ 2 は空いています。