以冒险的方式调用Camel servlet或jetty端点

时间:2016-04-16 13:51:37

标签: apache-camel

据我所知,Camel中的servlet和jetty端点都是Request Reply消息交换(InOut)期望out-message。

因此,我假设当我向这些端点发送HTTP请求时,只有在路由的所有处理器完成后才会发回响应。

是否有可能以一种即发即忘的方式调用这些端点,即只是触发路由并立即获得响应,而无需等待所有处理完成?

2 个答案:

答案 0 :(得分:0)

当然,您只需在路线中添加一些asynchronous步骤(EIP或组件)......

例如......这条路由会将所有请求发送到JMS队列(或seda等),这些队列可以异步处理,并在消息进入队列后发送回HTTP客户端...

from("http://localhost:9001/inbound")
    .to("activemq:inboundQ");

from("activemq:inboundQ")
    .to(...inbound processing...);

答案 1 :(得分:0)

最后我使用了" seda"使其异步。请注意,当我使用inOnly-tag时,这只会运行异步:

<route autoStartup="true" id="x-service">
     <from uri="servlet:/xService"/>
     <inOnly uri="seda:x-service-execute-async" />
     <transform>
         <constant>OK</constant>
     </transform>
 </route>

 <route autoStartup="true" id="x-service-execute-async">
     <from uri="seda:x-service-execute-async"/>
     ...
 </route>