【问题标题】:Redelivering messages from dead letter channel从死信通道重新传递消息
【发布时间】:2012-05-24 15:32:32
【问题描述】:

如果消息重新传递尝试失败,我可以将消息放入死信队列。
如何在死信队列中重新发送已归档邮件?
Camel 是否为此提供任何解决方案?

【问题讨论】:

    标签: java apache-camel


    【解决方案1】:

    正如@sully6768 建议的那样 - 您可以使用Camel component 为您处理死消息的重新传递(例如JMS)。

    但是您还可以定义在 Camel 将消息移动到死信队列之前尝试发送多少次消息(顺便说一句,您还可以定义重新发送尝试之间的时间间隔)。

    errorHandler(deadLetterChannel("jms:queue:dead"))
        .maximumRedeliveries(3).redeliveryDelay(5000));
    

    【讨论】:

      【解决方案2】:

      DLQ 只是另一个 JMS 目的地。只需创建一个额外的 Camel 路由,用于处理来自 DLQ 的消息。

      【讨论】:

      • 额外的骆驼路线什么时候开始?
      • DLQ JMS 目的地和相关的骆驼路线与任何其他路线没有什么不同。您可以将其设为以预定义间隔执行的轮询消费者,也可以将其设为事件驱动,任何消息的存在都将启动进程。我必须跑去开会,但如果您有其他问题,我很快就会回来。
      猜你喜欢
      • 2012-10-18
      • 2015-09-23
      • 2012-04-03
      • 1970-01-01
      • 2020-03-29
      • 1970-01-01
      • 2020-10-26
      • 2020-02-14
      • 1970-01-01
      相关资源
      最近更新 更多