【发布时间】:2018-01-21 22:41:56
【问题描述】:
我的问题:
我从 RabbitMQ 队列中提取了一条消息。我尝试处理此消息并意识到它还无法处理。所以我想将它添加回队列并让它仅在特定时间 + 5000 毫秒后返回。不幸的是,这比我想象的更具挑战性。
我尝试过的:
RabbitMQ 死信属性 -> 我的问题是,尽管手册说默认交换绑定到每个队列,但它没有根据路由条件转发它。我尝试添加 expires = "5000" 和 x-dead-letter-routing-key = "queuename" 也 "x-dead-letter-exchange = "" 作为默认交换应该工作。唯一有效的部分是expires 部分。消息将消失并进入黑暗状态。死信交换beeing amq.direct 也会发生这种情况,包括目标队列上的绑定。
为我打开空白: 如果接收者必须是死信队列,并且如果我死信队列是具有扩展功能的基本队列,我有点不知所措。也不清楚这些参数(x-dead-letter..)是否仅适用于 DLX 队列。我想通过持久和纯粹的方式来实现延迟交付。消息属性而不是通过。队列配置(仅在需要时)。
我在网上搜索并检查了许多不同的死信信息。我试图在使用 RabbitMQ 作为交付机制的同时构建一个类似微服务的架构(我使用从队列中获取工作并转发它的进程)。我相信这里的其他人已经有相同的运行,但我找不到任何关于此的博客。
【问题讨论】:
标签: rabbitmq