0

ファイルからウサギmqにレコードを移し、キューからレコードを読み込み、サービスを呼び出します。拒否されたレコードについては、否定応答を送信してchannel.basicNackメソッドでキューに入れます。しかし、我々はサービス呼び出しの約3回の試みを行う必要があるという要件です。それから我々はキューからメッセージを削除する必要がありますが、何度も何度もサービスを呼び出し続けます。キューからメッセージを削除する

答えて

1

最後に、の引数をbasicNackに設定します。

+0

返信ありがとうございましたGary.I同じメッセージが処理された回数をチェックする方法を知りたいです。ヘッダカウント数の設定については、どこかで読んでいます.getHeaders()。put( "x-header- count "、count ++)プロパティーは、コンシューマ – user

+0

のhandleDelivery()への引数としてAMQP.BasicProperties型です。それは助けにならないでしょう - RabbitMQは同じメッセージをredelivers - あなたは変更されたヘッダーが表示されません。それが提供する唯一のものはブール型の 'redelivered'プロパティです。メッセージ内の一意なものに基づいて、アプリケーション内の状態(試行回数)を維持する必要があります。 Spring AMQPのステートフルな再試行インターセプタは、デフォルトでmessageIdヘッダを使用しますが、送信側でそれを一意の値に設定する必要があります。 –

+0

ありがとうございます。しかし、channel.basicNack(envelope.getDeliveryTag()、false、true); messageIDをいくつかの固有の値に設定しています。消費中に、このメッセージIDが再配信されたかどうかを確認します。同じメッセージの再配信後にプロパティのmessageIDが保持されないのでしょうか?それで、どういうふうにお勧めしますか? – user

関連する問題