Java 如何立即停止骆驼上下文?
我有一个camel应用程序,我在其中创建下面的结构Java 如何立即停止骆驼上下文?,java,apache-camel,spring-scheduled,Java,Apache Camel,Spring Scheduled,我有一个camel应用程序,我在其中创建下面的结构 main thread create Camel Context addRoute(routeBuilder1) addRoute(routeBuilder2) context.start RouteBuilder1 R11 R12 R13 R14 RouteBuilder2 R21 R22 在非常特定的情况下,我需
main thread
create Camel Context
addRoute(routeBuilder1)
addRoute(routeBuilder2)
context.start
RouteBuilder1
R11
R12
R13
R14
RouteBuilder2
R21
R22
在非常特定的情况下,我需要停止上下文(立即停止所有处理)。当我使用context.shutdown时,我注意到如果路由处理正在进行,camel将无法停止它(称为gracefull shutdown),并且该路由将继续处理。然而,在我的情况下,我需要立即停止一切
如何实现这一点?设置的
超时
字段
例如:
context.getShutdownStrategy().setTimeout(0);
context.getShutdownStrategy().setShutdownNowOnTimeout(true);
更新:
我不确定,但它可能需要1毫秒的超时(你可以在关机策略上设置时间单位)
你看过这个相关的问题吗 也许您可以使用“kill-9”以同样的方式进行尝试。setTimeout(0);无法工作,camel需要正超时值。
context.getShutdownStrategy().setTimeUnit(TimeUnit.MILLISECONDS);
context.getShutdownStrategy().setTimeout(1);
context.getShutdownStrategy().setShutdownNowOnTimeout(true)