停止某些路线,而不是完全停止整个骆驼上下文

Posted

技术标签:

【中文标题】停止某些路线,而不是完全停止整个骆驼上下文【英文标题】:stop certain routes instead of completely stopping the whole camel context 【发布时间】:2015-11-10 05:17:38 【问题描述】:

我想知道我们如何才能停止某些路线而不是完全停止整个骆驼上下文,还有Thread.sleep(); 处理方法的其他替代方法。

我想运行一次路线并在路线完成后停止上下文。目前我在 ma​​in Java 类 中执行通常的Thread.sleep(3000) 以留出一些时间让路线完成。

我看到一些文档说骆驼路由支持正常关闭,但如果我不使用Thread.sleep() 路由会立即关闭而不进行处理。

【问题讨论】:

查看独立 Camel 上下文:camel.apache.org/… 【参考方案1】:

CamelContext has APIs 停止个别路线(startRoute(routeId)stopRoute(routeId) 等),或者您可以使用route policies 进行更高级的路线控制

另外,为了保持上下文运行,您不需要使用 Thread.sleep,只需使用 Spring 或使用 Main class 引导上下文...

【讨论】:

StartRoute 和 stopRoute 方法在骆驼版本 3.x+ 中不可用,所以这个答案不再有用了。

以上是关于停止某些路线,而不是完全停止整个骆驼上下文的主要内容,如果未能解决你的问题,请参考以下文章

在 Java 中运行时添加骆驼路线

Apache骆驼优雅的路由关闭

如何使骆驼简单表达式与spring xml中的属性占位符一起使用

如何重新启动停止的 Spark 上下文?

停止 spring 应用程序上下文时 management.server.port 不关闭

关闭或停止后重新加载弹簧上下文