Apache Camel return 处理后(对于外部调度程序)

Apache Camel return after processing (for outside sheduler)

我们正在使用 Spring Boot for 运行ning Camel routes using Camel Spring Boot starter。我们想知道如何在 Camel 中准确地完成处理?问题在于,由于我们从 Camel 外部调用可执行 jar 文件,它需要知道 Camel 处理何时完成(比如在处理了目录中的一堆文件之后)。如果我们启用 camel.springboot.main-运行-controller=true,Camel 进程永远不会 returns 并且外部批处理进程会无限期地等待。如果我们设置 camel.springboot.main-运行-controller=false,camel 进程将立即 return 而不处理文件(因为路由是在守护线程中启动的)。有更简单的解决方案吗?

您可以将 camel spring 引导配置为在 X 段时间、X 段空闲时间或处理超过 X 条消息后自行终止。

您可以使用 spring application.properties 文件中的 camel.springboot.XXX 选项配置它们。

另一种方法是在处理完所有文件等后使用控制总线停止路由。但是前者在空闲超过 30 秒等后可能更容易说。