从死信队列中恢复

时间:2013-04-23 09:42:58

标签: java java-ee jms activemq dead-letter

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

1 个答案:

答案 0 :(得分:1)

您可以向消息添加自定义属性(如RESUBMIT_TIMES),并将其递增直到达到5。阅读:JMS

如果达到5,则将其移至 5minutesqueue ,方法是在那里设置具有当前时间戳的另一个属性。例如:

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

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