如何可耻地关闭Camel路由上下文?
单击按钮后,Camel路径应立即停止。我不想拖延。
每次我执行camelroute.context.stop()
时,都需要一些时间来停止,并且在此时间路由处于活动状态之前,队列和队列将消息发送到目标队列。
我想在单击所需按钮时中途停止路线。
有办法处理吗?
答案 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
。