首页 > 解决方案 > Azure 服务总线:清除死信队列中超过一天的消息

问题描述

我正在使用 Azure 服务总线,目前有一个进程正在发送无法传递到死信消息队列的消息。但是,如果一天后死信队列上的消息没有被重新排队,我希望它会自动从中删除。

根据微软的文档,没有观察到消息的生存时间,所以我不确定如何清除超过一天的消息。

标签: message-queueazureservicebusservicebusdead-letter

解决方案


死信功能是一种保护系统免受无休止的失败重新处理的机制。鉴于在死信队列中结束的消息可能是由于处理逻辑错误而失败的有价值的消息,因此在各个死信队列上允许 Time-To-Live 是很危险的。当您想要覆盖安全机制时,您仍然可以这样做。

实现您想要的一种方法是创建一个队列来表示以用作具有 TTL 的逻辑集中式死信队列并在那里转发所有死信消息。实现的细节在这篇文章中。重要的是要知道,通过这样做,您仍然可以将死信消息返回给失败的实体(队列或订阅),以便在需要时进行重新处理。


推荐阅读