簡體   English   中英

Java ActiveMq nonBlockingRedelivery

[英]Java ActiveMq nonBlockingRedelivery

我使用的是ActiveMQ版本5.7.x,

我有一個偵聽器偵聽的ActiveMQ隊列。

Queue有一個ConnectionFactoryredeliveryPolicy設置為3, intialRedeliveryDelay設置為5000。

隊列有一些好消息和壞消息。 在收聽此類隊列時,當收到錯誤消息時,會在等待時間為5000毫秒的情況下嘗試3次,但是好消息會在這么長的時間內被阻止。

我想要的是,在每次重試5000毫秒的等待時間內,好消息的處理應該繼續,不應該等待錯誤的消息處理。

為此,我嘗試了connectionFactory 1個屬性,即nonBlockingRedelivery設置為true。

但是nonBlockingRedelivery無效。

有沒有其他方法可以做到這一點?

您始終可以使用重新傳輸隊列來處理失敗的消息。

也就是說,從主隊列接收消息(無重新傳遞),如果出現異常,請將消息放在重新傳遞隊列中。

讓您的應用程序偵聽兩個隊列,並對兩個消息執行相同的邏輯。 它應該只是兩個調用相同方法的消息偵聽器。 一個具有重新傳遞,一個沒有,但具有稍微不同的錯誤處理。

請查看ActiveMQConnectionFactory中該屬性的描述,它說明了我到底想要什么。

“當為true時,MessageConsumer將不會在從回滾事務重新傳遞消息之前停止消息傳遞。這意味着將不會保留消息順序,並且還將導致啟用TransactedIndividualAck選項”

但同樣不起作用.. !!!

請你好好調查一下嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM