Camel独立应用程序-处理多个文件后退出

hwamh0ep  于 2022-11-07  发布在  Apache
关注(0)|答案(1)|浏览(173)

我有一个由外部任务调度器执行的独立Camel应用程序。因此,它需要在执行完成后退出。为了实现这一点,我传递了命令行参数-dm 1,以便在关闭前处理一条消息。
应用程序正用于使用目录中的文件

from(file("SomeDirectory").include("TestFile.*"))
.to(...);

我遇到的问题是,每个文件都作为唯一的消息处理,因此-dm 1参数会导致应用程序在处理完1个文件后退出。
如何让应用程序在处理完TestFile.*提供的完整文件列表后退出?

ffscu2ro

ffscu2ro1#

由于File组件是一个批处理使用者,因此可以检查名为CamelBatchComplete的交换属性。如果值为true,则表示没有其他文件要处理,因此可以停止CamelContext。这可以像camelContext.stop()一样简单,但要了解更多选项,请参阅this question
How can I shutdown a standalone Apache Camel application in an automated way?
编辑:因为你有一个独立的应用程序,如果你使用Camel main,你可以使用camel.main.durationMaxIdle​Seconds选项。

相关问题