Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何立即停止骆驼上下文?_Java_Apache Camel_Spring Scheduled - Fatal编程技术网

Java 如何立即停止骆驼上下文?

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 在非常特定的情况下,我需

我有一个camel应用程序,我在其中创建下面的结构

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)