C# 如何基于消息属性筛选Azure Service Bus队列消息?
我正在使用Azure服务总线队列从我的应用程序发送电子邮件。我有许多不同的客户通过我的应用程序发送电子邮件,每封邮件都有一个属性来标识该客户:CustomerID 我需要为我的客户编写一个管理区域,以便查看队列中的挂起消息,更重要的是查看死信队列。我不想让他们看到每个人的死信,所以我想根据属性CompanyID过滤消息 我如何做到这一点C# 如何基于消息属性筛选Azure Service Bus队列消息?,c#,azure,servicebus,C#,Azure,Servicebus,我正在使用Azure服务总线队列从我的应用程序发送电子邮件。我有许多不同的客户通过我的应用程序发送电子邮件,每封邮件都有一个属性来标识该客户:CustomerID 我需要为我的客户编写一个管理区域,以便查看队列中的挂起消息,更重要的是查看死信队列。我不想让他们看到每个人的死信,所以我想根据属性CompanyID过滤消息 我如何做到这一点 我读过关于主题和订阅的文章,但我每周至少会增加10多名客户,这对我来说不是一个合理的解决方案。队列通常不适合查询和高级筛选场景。当客户检查状态时,在一个大队列中
我读过关于主题和订阅的文章,但我每周至少会增加10多名客户,这对我来说不是一个合理的解决方案。队列通常不适合查询和高级筛选场景。当客户检查状态时,在一个大队列中偷看会破坏使用服务总线的全部目的
我的建议是将已启动任务的状态存储在Azure表存储中。一旦工作者角色处理队列中的消息或处理失败,它可以简单地更新表存储中的状态。队列不支持筛选。您可以编写管理客户端,获取客户端上的所有消息并进行筛选,但考虑主题/订阅,因为您可以轻松地总计达2000个订阅每个主题,然后在客户中过滤这些消息,以便您想以上述方式重复查询的东西,如果您有一个守护进程来解析队列并更新一个表,然后每个客户都在该状态表上运行查询,那么效果会更好