加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Apache Camel.节流部分路线

发布时间:2020-12-15 01:06:16 所属栏目:Java 来源:网络整理
导读:我有一个JMS队列.收到消息后,需要将其存储到DB.然后根据某些条件,我希望以固定费率将此消息发送给第三方服务,因此我使用限制. 我有以下路线: from("jms:queue") .bean(persistingListener) .choice() .when(some condition ..) .throttle(5) .asyncDelayed(

我有一个JMS队列.收到消息后,需要将其存储到DB.然后根据某些条件,我希望以固定费率将此消息发送给第三方服务,因此我使用限制.

我有以下路线:

    from("jms:queue")
            .bean(persistingListener)
            .choice()
                .when(some condition ..)
                    .throttle(5)
                    .asyncDelayed()
                    .bean(thirdPartyServiceClient)
            .endChoice();

但是,整个路由受到限制,而不是与第三方服务客户端相关的部分.我的意思是,如果我在队列中放入100条消息,则只会读取前5条消息.因此,在这种情况下,处理不需要第三方服务的消息会被延迟.

关于如何仅限制与第三方服务相关的部分的任何想法?

提前致谢

最佳答案
默认情况下,JMS端点以模式运行,其中每个JMS消息按顺序处理.如果由于异步处理而希望允许处理消息(乱序),则需要通过在端点上配置asyncConsumer = true来启用此明确说明.

请参阅JMS文档中的更多详细信息:http://camel.apache.org/jms

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读