Apache camel 一旦触发多播步骤,ApacheCamel执行线程将不被使用
一旦在路由中触发了Apache camel 一旦触发多播步骤,ApacheCamel执行线程将不被使用,apache-camel,threadpool,multicast,Apache Camel,Threadpool,Multicast,一旦在路由中触发了,正在执行的Tomcat线程将不被使用。在路由中完成多播聚合后,是否有方法使用执行线程。目前正在使用驼峰冲刺启动程序:3.6.0和XML DSL进行路由。 示例路线: <route> <from uri="direct:trigger"/> <bean ref="bean1"/> <multicast> <bean ref="bean2"
,正在执行的Tomcat线程将不被使用。在路由中完成多播聚合后,是否有方法使用执行线程。目前正在使用驼峰冲刺启动程序:3.6.0和XML DSL进行路由。示例路线:
<route>
<from uri="direct:trigger"/>
<bean ref="bean1"/>
<multicast>
<bean ref="bean2"/>
<bean ref="bean3"/>
</multicast>
<bean ref="bean4"/>
<bean ref="bean5"/>
</route>
在每个bean中打印Thread.currentThread.getName()
时,显示以下内容
CurrentThread-http-nio-8080-exec-1(开始控制器)CurrentThread-http-nio-8080-exec-1(bean1)
CurrentThread-驼峰(驼峰-1)线程#10-多播(bean2)
CurrentThread-驼峰(驼峰-1)线程#11-多播(bean3)
CurrentThread-驼峰(驼峰-1)线程#11-多播(bean4)
CurrentThread-驼峰(驼峰-1)线程#11-多播(bean5)
CurrentThread-http-nio-8080-exec-1(终端控制器) Spring MVC控制器中的执行线程通过
ProducerTemplate.sendBody()
触发一条路由,同一线程还将执行bean1,其中bean2和bean3由多播线程10和11执行。多播完成后,最后一个完成的线程#11将负责执行剩余的bean bean4和bean5,最后执行线程将响应调用者。在执行bean2到bean5期间,执行线程完全空闲
请告诉我是否有办法让执行线程负责执行剩余的bean。提前感谢。
[executing]线程一旦被触发到显示多播(bean4)
(&5)的程度,就会被闲置。惊人的