【发布时间】:2020-09-07 00:37:43
【问题描述】:
我正在使用 Azure 服务总线,目前有一个进程正在发送无法传递到死信消息队列的消息。但是,如果一天后死信队列上的消息没有重新排队,我希望它会自动从中删除。
根据Microsoft's documentation 没有观察到消息的生存时间,所以我不知道如何清除超过一天的消息。
【问题讨论】:
标签: message-queue azureservicebus servicebus dead-letter
我正在使用 Azure 服务总线,目前有一个进程正在发送无法传递到死信消息队列的消息。但是,如果一天后死信队列上的消息没有重新排队,我希望它会自动从中删除。
根据Microsoft's documentation 没有观察到消息的生存时间,所以我不知道如何清除超过一天的消息。
【问题讨论】:
标签: message-queue azureservicebus servicebus dead-letter
死信功能是一种保护系统免受无休止的失败重新处理的机制。鉴于在死信队列中结束的消息可能是由于处理逻辑错误而失败的有价值的消息,因此在各个死信队列上允许 Time-To-Live 是很危险的。当你想覆盖安全机制时,你仍然可以这样做。
实现您想要的一种方法是创建一个队列来表示以充当具有 TTL 的逻辑集中式死信队列,并在那里转发所有死信消息。实现细节在this post。重要的是要知道,通过这样做,您仍然可以将死信消息返回给失败的实体(队列或订阅),以便在需要时进行重新处理。
【讨论】: