gpt4 book ai didi

apache-camel - 来自 redeliveryPolicy 的 Activemq RedeliveryDelay 被忽略

转载 作者:行者123 更新时间:2023-12-02 03:22:57 25 4
gpt4 key购买 nike

我在 OSGI 环境 (Karaf) 上遇到了 Camel 和 Activemq 的一些问题。如果失败,我希望队列中的消息能够重新传递!但我想在重试之前延迟。

我找到了类 org.apache.activemq.RedeliveryPolicy。我在我的蓝图 xml 中配置了一个具有不同属性的 bean,如下所示:

<bean id="redeliveryPolicy" class="org.apache.activemq.RedeliveryPolicy">
<property name="initialRedeliveryDelay" value="2000" />
<property name="redeliveryDelay" value="15000" />
<property name="useExponentialBackOff" value="true" />
<property name="backOffMultiplier" value="5" />
<property name="maximumRedeliveryDelay" value="120000" />
<property name="maximumRedeliveries" value="20" />
<property name="queue" value="*" />
</bean>

当我测试此配置时,如果出现错误,队列会重试“maximumRedeliveries”属性中配置的次数。但是重新投递之间没有延迟。事实上 initialRedelivery 有效,但仅用于第一次重试。我在不同的网站上搜索过,我不是唯一遇到这些问题的人。

(Ps:我将我的 redeleveryPolicy Bean 放在我的 org.apache.activemq.ActiveMQConnectionFactory 中)

感谢您的回答

(我为我的英语语法道歉)

最佳答案

如果端点出现故障,Camel 和 ActiveMQ 只会尝试重新传送队列中的第一条消息。当达到 maximumRedeliveries 时,默认情况下消息将被放置在死信队列 (DLQ) 中,Camel/ActiveMQ 将继续处理队列中的下一条消息。一旦端点可用,队列中备份的所有消息将以 Camel 和 ActiveMQ 的速度传递,并且不应用重新传递策略(因为除了队列中的第一条消息外,所有消息都是第一次传递,未重新交付)。

关于apache-camel - 来自 redeliveryPolicy 的 Activemq RedeliveryDelay 被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32009836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com