0

我有一个 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\"}"
    }
4

1 回答 1

1

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

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

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

于 2021-04-08T07:27:20.447 回答