これを行う方法がわからない、またはそれができる場合でも。キューをリッスンし、キューから何かがポップされたときに起動する関数を作成する必要があります。
つまり、基本的には、オブジェクトをキューにプッシュします。コンシューマーはオブジェクトをキューからポップします**ある関数は、「'オブジェクト'がキューからポップされました」と言います。
これはウサギと一緒にできることですか?
これを行う方法がわからない、またはそれができる場合でも。キューをリッスンし、キューから何かがポップされたときに起動する関数を作成する必要があります。
つまり、基本的には、オブジェクトをキューにプッシュします。コンシューマーはオブジェクトをキューからポップします**ある関数は、「'オブジェクト'がキューからポップされました」と言います。
これはウサギと一緒にできることですか?
コンシューマーがキューからのメッセージを消費したことをプロデューサーに通知したいという意味だと思います。ここでMQの概念を誤解している可能性があり、RabbitMQで実行できるRPCメソッドを使用するか、システムを再設計する必要があると思います。ただし、必要なことは可能です。
私はプロデューサーのスレッドのループで使用します:
`GetResponse gr = channel.basicGet(queueName, false);`
次のメッセージがキューからポップされないように、falseを使用します。それから
`int msgCount = gr.getMessageCount();`
キューにあるメッセージの数が表示されます。その後、少しの間寝てから、もう一度確認してください。プロデューサーが大量のメッセージをキューに送信している場合、これは非常に困難になります。ただし、キューに送信されたメッセージの合計を増やし、消費されたことがわかっているメッセージを削除すると、メッセージが消費されたかどうかがわかります。
私はこれが問題がないことを100%ではありません、そして私はこれを試みることによってあなたのデザインに何かが間違っていると思うことを繰り返します。
自分の計画を検討した後、私は間違ったアプローチで思いついたことに気づきました。この特定のメッセージが読まれたことを示すメッセージを消費者にプログラムに投稿してもらいます。これは、キューの概念の詳細に従います。