微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何根据字典键过滤 Azure Servicebus 主题订阅

如何解决如何根据字典键过滤 Azure Servicebus 主题订阅

我有一个 Azure Servicebus 主题和多个订阅。消息将以字典类型发布。基于字典键,我将能够过滤消息。所有示例均基于层次结构 https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-sql-filter#property_name 显示。这是有效负载,我想根据字典键进行过滤,即 DataReady、Datapending、Dataprocessed。

Message 1:
    {
      "DataReady": "{\"RequestId\":\"605dc8dda700a7b9c25eb22a\"\"Status\":"Initiated\"}"
    }
    
Message 2:
    {
      "DataProcessed": "{\"RequestId\":\"605dc8dda700a7b9c25eb22a\"\"Status\":"Processed\"}"
    }
    
message 3:
    {
      "DataPending": "{\"RequestId\":\"605dc8dda700a7b9c25eb22a\"\"Status\":"pending\"}"
    }

解决方法

Azure 服务总线不支持基于消息内容过滤消息。您可以仅在消息的系统属性(如 ID、标签等)或自定义属性(键/值对形式的用户定义元数据)上定义过滤规则。

有关设置过滤规则的示例,请参阅此链接:https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-filter-examples

您可以做的一件事是将状态(“已启动”、“已处理”或“待处理”)定义为消息的自定义属性之一(例如“MessageStatus”),然后您可以定义过滤规则财产。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。