我正在使用 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);