如果在端点上没有收到消息x秒,我该如何退出Spring Camel应用程序

时间:2017-07-03 22:13:39

标签: spring apache-camel

我试图配置一个独立的spring-camel应用程序,以便有一个路由,如果在该路由上没有收到消息x秒,整个上下文将关闭。

假设x为10,如果8秒内没有收到任何消息,但是一个到达路线,则计数器应重置为10秒。一旦计数器达到0,整个应用程序应退出(优雅地完成当前正在处理的任何路径)

如果消息在10秒内继续出现,应用程序永远不会退出。

有谁知道实现这一目标的优雅方式?

1 个答案:

答案 0 :(得分:3)

如果您使用最新的Camel版本2.19.1,则可以将其配置为在X消息,X时间或空闲超过X秒后终止。

您可以在驼峰弹簧配置中找到选项,您可以在application.properties中为Spring配置,例如

https://github.com/apache/camel/blob/master/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelConfigurationProperties.java#L179

https://github.com/davsclaus/camel-profile-sample/blob/master/src/main/resources/application.properties#L24