3.4. 默认关闭策略
红帽构建的 Apache Camel 支持使用 org.apache.camel.spi.ShutdownStrategy
的关闭策略,它负责以安全的方式关闭路由。红帽构建的 Apache Camel 在 org.apache.camel.impl.engine.DefaultShutdownStrategy
中提供默认策略,以处理路由的安全关闭。
注意
DefaultShutdownStrategy
类已从软件包 org.apache.camel.impl
移到 Apache Camel 3.x 中的 org.apache.camel.impl.engine
。
当您配置一个简单的调度路由策略来停止路由时,路由停止算法会自动与安全关闭过程集成。这意味着,该任务在关闭路由前等待当前交换完成处理。您可以设置超时,它会强制路由在指定时间后停止,无论路由是否完成处理交换。
在安全关闭过程中,如果您在 org.apache.camel.impl.engine.DefaultShutdownStrategy
上启用 DEBUG 日志级别,则它会记录相同的 inflight Exchange 信息。
2015-01-12 13:23:23,656 [- ShutdownTask] INFO DefaultShutdownStrategy - There are 1 inflight exchanges: InflightExchange: [exchangeId=ID-test-air-62213-1421065401253-0-3, fromRouteId=route1, routeId=route1, nodeId=delay1, elapsed=2007, duration=2017]
如果您不想查看这些日志,您可以通过将 logInflightExchangesOnTimeout
选项设置为 false 来关闭这个日志。
context.getShutdownStrategegy().setLogInflightExchangesOnTimeout(false);