我们使用Camel来读取文件并检查文件的内容。我们不需要将文件转发到端点。下面是我们用于设置 Camel 的构建。问题是Camel在处理完文件后删除了文件。如何避免文件被删除?
public void configure() {
from(
file(inputDirectory).initialDelay(initialDelay).delete(false).antInclude("*.pdf").readLock("markerFile").readLockDeleteOrphanLockFiles(false).maxMessagesPerPoll(500))
.routeId("signaturcheck")
.throttle(8).timePeriodMillis(100)
.process(checkFile)
.log("File handled ${file:name}")
.stop();
}
看起来是 stop() 负责删除 inputDirectory 中的文件。 因此,我们创建了一个不同的配置,并且无需删除文件即可工作。
public void configure() {
from(
file(inputDirectory).initialDelay(initialDelay).delete(false).antInclude("*.pdf").readLock("markerFile").readLockDeleteOrphanLockFiles(false).maxMessagesPerPoll(500))
.routeId("signaturcheck")
.throttle(1000).timePeriodMillis(100)
.process(checkFile)
.log("File handled ${file:name}")
.to("stub:null?discardWhenFull=true");
}