java - 从死信队列恢复

标签 java jakarta-ee jms activemq dead-letter

我一直从 Queue1 接收所有 JMS 消息并尝试处理它。
如果我尝试处理 5 次,并回滚 5 次,我希望 ActiveMQ 将消息放入不同的队列一段时间(例如 5 分钟)。
我怎样才能实现这一目标?

最佳答案

您可以向消息添加自定义属性 - 例如 RESUBMIT_TIMES,并递增该属性直到达到 5。阅读此内容:JMS

如果达到 5,则通过设置另一个具有当前时间戳的属性,将其移动到 5 分钟队列。例如:

  message.setStringProperty("TimeOfDispatch", LocalDate.now().toString("yyyy-MM-dd hh:MM:ss"));

5分钟队列上还有另一个消费者来检查是否已经过去了5分钟(通过检查当前时间和标题中的时间)

关于java - 从死信队列恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16166054/

相关文章:

java - 无法在 glassfish3 上重新部署 Web 应用程序

jms - 如何将 JMS 消息从 WildFly 10 发送到远程 ActiveMQ

jms - 只处理一次消息

java - WebSphere 中的 JMS、MQ 异常

java - 在参数化链表的实例化时设置比较器

java - OpenGL:创建我自己的相机

java - 读取不失真的灰度 PNG 图像文件

java - 暂停 For 循环/更好的想法如何解决这个问题

jakarta-ee - CDI 在从工厂模式实现创建的对象中不起作用

java - 使用服务器IP从不同机器访问Java Web App