【问题标题】:ActiveMQ Redeliver Rejected messages Amqp.NET Lite C#ActiveMQ 重新传递被拒绝的消息 Amqp.NET Lite C#
【发布时间】:2020-05-15 08:52:36
【问题描述】:

我将 Amazon AWS Managed ActiveMQ 与 .NET Core 项目一起使用。我们使用 Amqp.NET Lite 通过队列进行连接和通信。

现在我正在尝试实现对无法处理的消息的管理。 我真正需要的是告诉队列在指定时间或稍后的特定时间后发送消息。是否可以使用 Amqp.NET Lite。我找不到涵盖此内容的文档。

就我对this documentation 的最佳理解而言,我的理解是我应该在 ActiveMQ 控制台上将重新传递设置为配置。是这样吗? 如果是这样,有没有办法在不知道何时重新交付的情况下做到这一点?应用程序的 IReceiverLink 可以指定拒绝消息的时间?

【问题讨论】:

    标签: c# activemq amqp amqp.netlite


    【解决方案1】:

    ActiveMQ 支持的所有协议都不允许在拒绝或确认消息时要求特定的重新传递时间。由于您使用的是 AMQP,因此您需要使用 Modified(undeliverableHere:true, deliveryFailed:true) 类型处置以使代理将消息发送到 DLQ 并在代理上配置重新传递插件,并控制应进行多少次尝试以及应延迟多少是为了重新交付尝试。

    【讨论】:

    • 好吧,那再用Modify方法,还有第三个参数Field MessageAnnotations?你能告诉我这个参数应该做什么吗?我可以在消息中添加一些新信息,并期望在下次将消息传递给客户端时该信息在消息中可用吗?
    • 规范确实提供了它作为更新消息的一种方式,但我还不知道有任何提供者实际实现了这一点,所以我不会根据它们实际产生影响来做任何工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-12
    • 2011-01-12
    • 2013-04-06
    • 1970-01-01
    相关资源
    最近更新 更多