Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何基于消息属性筛选Azure Service Bus队列消息?_C#_Azure_Servicebus - Fatal编程技术网

C# 如何基于消息属性筛选Azure Service Bus队列消息?

C# 如何基于消息属性筛选Azure Service Bus队列消息?,c#,azure,servicebus,C#,Azure,Servicebus,我正在使用Azure服务总线队列从我的应用程序发送电子邮件。我有许多不同的客户通过我的应用程序发送电子邮件,每封邮件都有一个属性来标识该客户:CustomerID 我需要为我的客户编写一个管理区域,以便查看队列中的挂起消息,更重要的是查看死信队列。我不想让他们看到每个人的死信,所以我想根据属性CompanyID过滤消息 我如何做到这一点 我读过关于主题和订阅的文章,但我每周至少会增加10多名客户,这对我来说不是一个合理的解决方案。队列通常不适合查询和高级筛选场景。当客户检查状态时,在一个大队列中

我正在使用Azure服务总线队列从我的应用程序发送电子邮件。我有许多不同的客户通过我的应用程序发送电子邮件,每封邮件都有一个属性来标识该客户:CustomerID

我需要为我的客户编写一个管理区域,以便查看队列中的挂起消息,更重要的是查看死信队列。我不想让他们看到每个人的死信,所以我想根据属性CompanyID过滤消息

我如何做到这一点


我读过关于主题和订阅的文章,但我每周至少会增加10多名客户,这对我来说不是一个合理的解决方案。

队列通常不适合查询和高级筛选场景。当客户检查状态时,在一个大队列中偷看会破坏使用服务总线的全部目的


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

队列不支持筛选。您可以编写管理客户端,获取客户端上的所有消息并进行筛选,但考虑主题/订阅,因为您可以轻松地总计达2000个订阅每个主题,然后在客户中过滤这些消息,以便您想以上述方式重复查询的东西,如果您有一个守护进程来解析队列并更新一个表,然后每个客户都在该状态表上运行查询,那么效果会更好