Sta*_*yuk 5 java throttling jms apache-camel
我有一个JMS队列.收到消息后,需要将其存储到DB.然后根据某些条件,我希望以固定费率将此消息发送给第三方服务,因此我使用限制.
我有以下路线:
from("jms:queue")
.bean(persistingListener)
.choice()
.when(some condition ..)
.throttle(5)
.asyncDelayed()
.bean(thirdPartyServiceClient)
.endChoice();
Run Code Online (Sandbox Code Playgroud)
但是,整个路由受到限制,而不是与第三方服务客户端相关的部分.我的意思是,如果我在队列中放入100条消息,则只会读取前5条消息.因此,在这种情况下,处理不需要第三方服务的消息会被延迟.
关于如何仅限制与第三方服务相关的部分的任何想法?
提前致谢
默认情况下,JMS 端点以按顺序处理每个 JMS 消息的模式运行。如果您希望允许由于异步处理而处理消息(无序),则需要通过asyncConsumer=true在端点上进行配置来显式启用此功能。
请参阅 JMS 文档中的更多详细信息:http://camel.apache.org/jms
| 归档时间: |
|
| 查看次数: |
645 次 |
| 最近记录: |