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 - WebLogic 上下文根

java EE 安装和设置

java - 带有 java 服务和 JMS 的 Grails 应用程序

java - kafka消费者组线程的线程顺序在每次启动时都不同

java - 使用 JSONArray 和 JSONObject 进行 Foreach

java - Android native 库: Runtime error when trying to load JNI native library

ssl - J2EE 没有主题替代名称 绝地复仇

java - Spring引导自动配置AutoConfigureAfter

java - Camel ActiveMQ 性能调优

Java 与 Golang 的 HOTP (rfc-4226)