我试图让Camel使用退避重发策略重试一个msg到JMS(实际上是MQ over JMS)。以下是我得到的:
errorHandler(defaultErrorHandler()
.maximumRedeliveries(-1)
.useExponentialBackOff()
.backOffMultiplier(2)
.maximumRedeliveryDelay(30000)
.retryAttemptedLogLevel(LoggingLevel.WARN));
from("direct:in")
.log("Sending message to MQ")
.to("mq:MY_QUEUE?requestTimeout=1000");
我对这里应该发生的事情的理解是,初始超时将是1000ms。之后,骆驼将等待2000ms,然后4000ms,等等,直到我们到达30000ms。
正在发生的是,消息被重试,但每次重试1000ms。
我可能需要在上面的代码中更改什么才能得到我要寻找的结果?
TIA
想通了。
以下是可用的配置参数(有很多)。
在错误处理程序上:
defaultErrorHandler()
.maximumRedeliveries(-1)
.useExponentialBackOff()
.backOffMultiplier(2)
.maximumRedeliveryDelay(10000)
.redeliveryDelay(500)
requestTimeout=400&
requestTimeoutCheckerInterval=300
*MessageListenerContainer
:无法刷新目标'reply.a.queue'的JMS连接-使用FixedBackOff正在重试{interval=5000,currentAuthts=67,maxAuthts=unlimited}
这与重试消息无关,它发生在另一个线程中。fixedbackoff
这件事是一种转移注意力的做法。
我试图绘制一个矩形,它的位置每秒钟更新一次,因为我有一个类,它扩展了JPanel,在它里面我重写了油漆(或油漆组件)function_我已经尝试了这两个_但显然这个函数只被调用一次,正如下面的代码所示,当我试图用reaint函数在无限循环中调用它时,它没有被调用,我能做什么? 上面的代码是图形部分,下面是主函数,它位于另一个类中: 在上面的代码中,食物。加法器是矩形位置更新的地方,我已经检查过了,
设置: 我们有一个Spring Boot应用程序,它正在从ActiveMQ Artemis JMS队列读取消息 这些消息正在JPA事务中处理 当在JPA中有一个异常触发回滚时,它也会在Artemis中触发一个JMS回滚,而Artemis设置了重新交付延迟 我们的应用程序在多个实例中并行运行,这在处理共享公共数据的多条消息时会导致乐观锁定问题 问题:当X消息被并行处理并且存在乐观锁定问题时,只有一个
我有一个带有。RecipientList()的动态终结点,我希望在发生异常时更改终结点。下面是我的例子:
我基于@SpencerGibb feign-eureka spring cloud starter示例构建了一个超级简单的Hystrix短路示例。一开始,我以为我不能让hystrix javanica默认的fallbackMethod触发由于虚假…现在,除去feign,hystrix默认的fallbackMethod仍然不能捕获异常。 pom.xml 主文件: java(创建HelloClient
谁能解释一下ActiveMQ重新交付策略实际上是如何工作的?它是在客户端还是在服务器端工作? 假设我有一个重新传递策略,每次尝试之间间隔30分钟,重新传递消息长达10分钟,那么失败的消息到底在哪里? 假设消息现在失败了,30分钟后重新发送,那么消息在哪里? http://activemq.apache.org/redelivery-policy.html http://activemq.apach