ActiveMQ ArtemisまたはSpring JMSクライアントをエラー時に他のメッセージを消費しないように設定する方法はありますか?Artemis:エラー時にメッセージを消費するのを止めるには?
次のように私は私のブローカーを構成した:
<addresses>
<address name="SimplePointToPoint">
<anycast>
<queue name="SimplePointToPoint"/>
</anycast>
</address>
</addresses>
<address-settings>
<address-setting match="SimplePointToPoint">
<max-delivery-attempts>-1</max-delivery-attempts>
</address-setting>
</address-settings>
これは私の消費者のコードです:
@JmsListener(destination = "SimplePointToPoint")
public void consumeMessage(Message<String> message) {
if (message.getPayload().contains("error"))
throw new RuntimeException();
log.info("received message: {}", message.getPayload());
}
message1
、message2 with error
とmessage3
を送信するとき、私は消費者がmessage1
を処理したいと永遠にmessage2 with error
を再試行してください。 message3
は、message2 with error
が正常に消費されるまで処理しないでください。実際には、message3
が再試行の間に消費されます。この動作を変更するには?何か案は?
あなたの答えは、Apache ActiveMQの5.xのに適用されますが、問題は、Apache ActiveMQのアルテミスブローカーについてでした。 –