首页 文章

如何根据消息属性过滤Azure Service Bus Queue消息?

提问于
浏览
5

我正在使用Azure Service Bus Queue从我的应用程序发送电子邮件 . 我有许多不同的客户通过我的应用程序发送电子邮件,每条消息都有一个标识该客户的属性:CustomerID

我需要为我的客户编写一个管理区域来查看队列中的待处理消息,更重要的是查看deadletter队列 . 我不希望他们看到每个人的紧张,所以我想根据属性CompanyID过滤消息 .

我该如何做到这一点?

我阅读了主题和订阅,但我至少每周增加10个客户,这对我来说不是一个合理的解决方案 .

2 回答

  • 2

    队列不支持过滤 . 您可以编写在客户端获取所有消息和过滤器的管理客户端,但考虑主题/订阅,因为您可以轻松地每个主题添加最多2000个订阅,然后通过客户等过滤这些消息 . 对于您要反复查询的内容如上所述的方法,您有一个守护程序解析队列并更新表,然后每个客户在该状态表上运行查询将更好地工作 .

  • 7

    队列通常不适合查询和高级过滤方案 . 当客户检查状态时,窥视大队列会破坏使用服务总线的整个目的 .

    我的建议是将已启动任务的状态存储在Azure表存储中 . 一旦辅助角色处理或处理队列中的消息失败,它就可以简单地更新表存储中的状态 .

相关问题