1
我正在使用activemq發送消息。由於發送的消息數量以及應用程序發送的其他工作量,我已啓用異步發送。ActiveMQ異步發送等待所有要發送的消息
當應用程序結束時,我想確保剩下的郵件實際上被傳送,因爲我們有時會錯過最後一次連接消息。
谷歌搜索我發現只有警告說,你可能會錯過一些消息,這是可以接受的,但我們錯過了大約40%的時間最後一些。我希望改善這種情況。
問:是否有任何方法檢查activemq生產者/發送者是否發送了所有異步消息?
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(brokerUrl);
connectionFactory.setUseAsyncSend(true);
RedeliveryPolicy policy = connectionFactory.getRedeliveryPolicy();
policy.setInitialRedeliveryDelay(500);
policy.setBackOffMultiplier((short)2);
policy.setUseExponentialBackOff(true);
policy.setMaximumRedeliveries(10);
這聽起來像一個很好的計劃。在我使用ActiveMQSession的情況下,我使用它略有不同。 '((ActiveMQSession)session).setAsyncDispatch(false); ((ActiveMQSession)會話).setSessionAsyncDispatch(false); ' – Djarshi