0

私はこれを持っています:

15:20:06 | INFO  | aultShutdownStrategy | mel.impl.DefaultShutdownStrategy   73 | Starting to graceful shutdown routes (timeout 300 seconds)
15:20:06 | INFO  | aultShutdownStrategy | mel.impl.DefaultShutdownStrategy  106 | Graceful shutdown of routes completed in 0 seconds
15:20:06 | WARN  | ltInflightRepository | l.impl.DefaultInflightRepository   91 | Shutting down while there are still 1 in flight exchanges.

グレースフル シャットダウンは、フライト交換でこれを待って着陸すると思っていました。「ルートのシャットダウンが 0 秒で完了しました」と表示されるのはなぜですか?

Thread.sleep(30000);それは、交換がまだ進行中のルートのプロセッサに書き込んだことに関連している可能性がありますか?

編集 :

私はこの構成を applicationContext に持っています:

<bean id="MainRouteBuilder" class="something.router2.MainRoute" init-method="init">
    <property name="ruleService" >
        <osgi:reference interface="something.router2.service.RuleService" />
    </property>
    <property name="controlInbox" value="${router.controlInbox}" />
    <property name="errorBox" value="${router.errorBox}" />
    <property name="rulesCamelContext" ref="secondCamelContext" />
</bean>


<!-- Camel -->
<camelContext xmlns="http://camel.apache.org/schema/spring" id="myCamelContext">
    <routeBuilder ref="MainRouteBuilder"/>
</camelContext>

<camelContext xmlns="http://camel.apache.org/schema/spring" id="secondCamelContext">
</camelContext>

「myCamelContext」を使用して「secondCamelContext」をルートに止めようとしています。

4

1 に答える 1

1

どのようにアプリケーションをシャットダウンしますか?

ルートからシャットダウンをトリガーする場合は、この FAQ を参照してください: http://camel.apache.org/how-can-i-stop-a-route-from-a-route.htmlこれを正しく行う方法。これが間違っていると、シャットダウン時にレジストリに 1 つのインフライト メッセージが残るという上記の状況が発生する可能性があります。

于 2013-07-28T06:25:01.870 に答える