前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >activenq之消息筛选

activenq之消息筛选

作者头像
johnhuster的分享
发布2022-03-29 14:25:17
3230
发布2022-03-29 14:25:17
举报
文章被收录于专栏:johnhuster

消息筛选器来在provider端过滤消息,只有当消息属性满足一定的条件,才将这些消息传送给对应的consumer!!!

注:该特性只能作用于消息头以及消息属性,不能用来筛选消息体

实例代码:

代码语言:javascript
复制
String filter = "sign = 'golang'";      
MessageConsumer messageConsumer = session.createConsumer(destination,filter);

broker具体实现查看:

AbstractSubscription:matches方法

代码语言:javascript
复制
    public boolean matches(MessageReference node, MessageEvaluationContext context) throws IOException {
         ConsumerId targetConsumerId = node.getTargetConsumerId();
         if (targetConsumerId != null) {
             if (!targetConsumerId.equals(info.getConsumerId())) {
                 return false;
             }
         }
         try {
             return (selectorExpression == null || 
selectorExpression.matches(context)) && this.context.isAllowedToConsume(node);
         } catch (JMSException e) {
             LOG.info("Selector failed to evaluate: " + e.getMessage(), e);
             return false;
         }
     }

注意上面加粗部分代码。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/08/15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档