你能告诉我这个功能的含义,他们做了什么?我试图在Google上找到它,但我无法理解。
我正在设置重新投放政策。
policy.setBackOffMultiplier(2);
policy.setUseExponentialBackOff(true);
policy.setMaximumRedeliveries(2);
policy.setRedeliveryDelay(5000)
答案 0 :(得分:3)
发生以下任何情况时,会将邮件重新传递给客户端:
一旦消息的重新传递尝试超过为重新传递策略配置的maximumRedeliveries,“Poison ack”将被发送回经纪人,让他知道该消息被视为毒丸。然后,代理接收消息并将其发送到死信队列,以便稍后进行分析。
您可以在此处阅读有关Active MQ中消息重新传递处理的更多信息:
http://activemq.apache.org/message-redelivery-and-dlq-handling.html
您所指的重新传递政策属性是:
此处描述了重新传递政策的所有属性:
答案 1 :(得分:0)
几点可以添加到上面提到的那些
RuntimeException
方法中抛出onMessage()
,则将重新传递相应的消息。 以上所有内容都会受到最大程度的重新尝试。在最大重新传递尝试之后,消息将转到死信息队列(如果已配置)或将被简单地删除。
您所问的是一种重新发送政策。因此,如果必须重新传递一条消息,那么它的重新传递应该给予多少重要性(延迟)。如果为每次重新传递相同的邮件设置setUseExponentialBackOff,则传递延迟将呈指数级增长。
可用于重新投放政策的所有属性均为
有关完整的详细信息,请查看here。