Java 配置发送至“邮箱”的邮件的到期时间;过期信息地址“;大黄蜂
我已经在Hornetq中配置了一个消息到期目的地,如下所示Java 配置发送至“邮箱”的邮件的到期时间;过期信息地址“;大黄蜂,java,jms,hornetq,Java,Jms,Hornetq,我已经在Hornetq中配置了一个消息到期目的地,如下所示 <address-setting match="#"> <dead-letter-address>jms.queue.error</dead-letter-address> <expiry-address>jms.queue.error</expiry-address> <max-delivery-attempts>3<
<address-setting match="#">
<dead-letter-address>jms.queue.error</dead-letter-address>
<expiry-address>jms.queue.error</expiry-address>
<max-delivery-attempts>3</max-delivery-attempts>
<redelivery-delay>2000</redelivery-delay>
<max-size-bytes>10485760</max-size-bytes>
<message-counter-history-day-limit>10</message-counter-history-day-limit>
<address-full-policy>BLOCK</address-full-policy>
<redistribution-delay>60000</redistribution-delay>
</address-setting>
jms.queue.error
jms.queue.error
3.
2000
10485760
10
块
60000
一旦超过过期时间,消息就会被重定向到过期地址。这些邮件在到期地址上无限期地存在,是否有办法为这些邮件提供到期时间,以便它们在到期地址上只存在有限的时间?如果您使用的是至少2.3版本,则可以为到期本身创建一个设置,并延迟,而无需指定到期地址:
<address-setting match="jms.queue.error">
<dead-letter-address>ExpiryOfExpiry</dead-letter-address>
<expiry-address>ExpiryOfExpiry</expiry-address>
<max-delivery-attempts>3</max-delivery-attempts>
<expiry-delay>3600000</expiry-delay> <!-- one hour... or use whatever you want -->
<max-size-bytes>10485760</max-size-bytes>
<address-full-policy>PAGE</address-full-policy>
<redistribution-delay>60000</redistribution-delay>
</address-setting>
到期日
到期日
3.
3600000
10485760
页
60000
ExpireyOfeExpiry将是一个空地址。。因此,信息只会发送给任何人。它将在地址上确认,然后被删除
我们没有针对这个场景的测试,但它应该可以工作。如果您发现任何问题,请告诉我。您能测试我的答案吗?如果你愿意,我将不胜感激。谢谢你的回答。我目前正忙于不同的任务。我将在几天后测试这个解决方案,并在这里更新结果。