我一直从 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/