当前位置: 首页 > 知识库问答 >
问题:

为Azure Service Bus中没有匹配筛选器的消息设置订阅(内部)

易超
2023-03-14

我正在使用Azure Service Bus1.1(前提版本)

我正在尝试设置一个订阅,该订阅将接收尚未筛选到任何其他现有订阅中的消息。

我有3个控制台应用程序,一个创建主题和订阅,一个向主题发送消息,一个从订阅接收消息。

         RuleDescription matchNoneRule = new RuleDescription()
         {
             FilterAction = new SqlFilterAction("set defer = 'yes';"),
             FilterExpression = new MatchNoneFilterExpression()
         };

如何向特定订阅发送不匹配其他筛选器的消息?

共有1个答案

余善
2023-03-14

该页面建议在主题上设置EnableFilteringMessagesBeforePublish属性。

然后建议在向该主题发送消息时,消息将触发NomatchingSubscriptionException

我正在用这段代码创建我的主题

var myTopic = new TopicDescription(topicName)
{
    EnableFilteringMessagesBeforePublishing = true
};
namespaceManager.CreateTopic(myTopic);
try
{
    topicClient.Send(message);

    Console.WriteLine(string.Format("Message sent: Id = {0}, Body = {1}", message.MessageId, message.GetBody<string>()));
}
catch (NoMatchingSubscriptionException ex)
{
    string messageBody = message.GetBody<string>();                        
    BrokeredMessage msg = new BrokeredMessage(messageBody);
    msg.Properties.Add("Filter", "NoMatch");
    foreach (var prop in message.Properties)
    {
        msg.Properties.Add(prop.Key, prop.Value);
    }
    topicClient.Send(msg);

    Console.WriteLine("\n NoMatchingSubscriptionException - message resent to NoMatchingSubscription");
    Console.WriteLine(string.Format("Message sent: Id = {0}, Body = {1}", msg.MessageId, msg.GetBody<string>()));
}
 类似资料:
  • https://github.com/azure/azure-service-bus/tree/master/samples/dotnet/gettingstart/microsoft.azure.servicebus/topicsubscriptionwithruleoperationssample 现在我想添加一个筛选器/规则,这样只有通过筛选器中定义的特定条件的消息才应该给订阅。 例如,下面

  • 微信文档:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.addTemplate.html 组合模板并添加至帐号下的个人模板库 $tid = 563; // 模板标题 id,可通过接口获取,也可登录小程序后台查看获取 $kidLi

  • 开普勒消息目前分为三大类:公告,告警和通知。 通知中根据不同的操作事件类型,分为十几个事件。每个事件都跟项目操作相关。便于接收项目操作变更的通知。 分类 事件 公告 Alarm 告警 Proclaim 通知 Build,Apply,Audit,Delete,Rollback,Logging,Reboot,Command,Storage,Extend... 订阅界面: 用户中心,点击头像,下拉菜单→

  • 1.手机版 设置方法:订阅号右上角详情按钮-新消息通知   2.电脑版 设置方法:订阅号右上角详情按钮-新消息通知

  • 我之所以要这样做,是因为我们的服务在部署时配置订阅规则,并且具有消息代理的服务可能会在具有订阅客户端的服务更改规则集和新的业务逻辑之前部署该服务,该服务会发送一组新的消息。我们不希望丢失在部署期间发送的消息,并在新服务退出时处理它们。 干杯。

  • 如果BrokeredMessage的正文是JSON文本,那么是否可以在该JSON中的属性上设置一个带有过滤器的主题订阅?