【问题标题】:Disgraceful shutdown of Camel Route骆驼路线可耻地关闭
【发布时间】:2016-04-21 02:25:16
【问题描述】:

如何不光彩地关闭 Camel 路由上下文?

单击按钮后,骆驼路线应立即停止。我不想耽搁。

每次我执行camelroute.context.stop() 时,都需要一些时间来停止,并且在那段时间里,由于路由处于活动状态,较早的队列和出队消息被发送到目标队列。

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

有办法处理吗?

【问题讨论】:

    标签: java apache jms apache-camel activemq


    【解决方案1】:

    看看DefaultShutdownStrategytimeout property

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

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

    默认以秒为单位。

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


    编辑 1: DefaultShutdownStrategy does not allow 0 timeouts。您可以尝试将其设置为 1 NANOSECOND,这可能会有所帮助:

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

    或者,如果确保绝对立即关闭对您来说真的很重要,您可以实现自己的 ShutdownStrategy

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-05
      • 1970-01-01
      • 2011-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多