骆驼路线可耻的关闭

时间:2016-01-15 13:18:53

标签: java apache jms apache-camel activemq

如何可耻地关闭Camel路由上下文?

单击按钮后,Camel路径应立即停止。我不想拖延。

每次我执行camelroute.context.stop()时,都需要一些时间来停止,并且在此时间路由处于活动状态之前,队列和队列将消息发送到目标队列。

我想在单击所需按钮时中途停止路线。

有办法处理吗?

1 个答案:

答案 0 :(得分:1)

查看DefaultShutdownStrategy的{​​{3}}。

尝试在Camel上下文中将其设置为零:

<bean id="shutdownStrategy" class="org.apache.camel.impl.DefaultShutdownStrategy"> 
    <property name="timeout" value="0"/>
</bean>

默认情况下,该值以秒为单位。

另外,如果您还没有,请查看Camel文档中的timeout property

编辑1: DefaultShutdownStrategy Graceful Shutdown。您可以尝试将其设置为 1 NANOSECOND ,这可能有所帮助:

<bean id="shutdownStrategy" class="org.apache.camel.impl.DefaultShutdownStrategy"> 
    <property name="timeout" value="1"/>
    <property name="timeUnit" value="NANOSECONDS" /
</bean>

或者,如果对您保证绝对立即关闭非常重要,您可以实施自己的ShutdownStrategy