我有这样的场景:文件夹是某些xml和pdf文件的放置目标。检测到文件时,会启动exec(windows cmd文件),它会处理此文件夹中的文件并将其移动到其他位置。工作 - 几乎。
问题是,当exec-target处于活动状态时,其中一个文件保持锁定状态。它不能移动并在两小时后保持到下一个周期。
执行完成后释放锁定。
我知道锁定文件可能有助于事务处理,但不知何故应该可以说“感谢将文件传递到这个地方”,但现在请在调用外部命令文件之前保持关闭。
我从Camel 2.19.3开始,昨天改为2.20.0。
路线就是这样:
public void configure() throws Exception { from( recvFolderName + "?include=.*\\.(pdf|xml)" + "&delay=5000" // + "&idempotent=true" + "&noop=true" + "&readLock=none" + "") .log("before processing downloaded file: ${file:name}") .process( new MyTestProcessor() ) .onException( FileNotFoundException.class ).handled( true ).end() .onException( GenericFileOperationFailedException.class ).handled( true ).end() .to( "exec:" + extShellScript + "?workingDir=c:/Sahara/emcs/" + "&outFile=c:/Sahara/LogFile.txt" + "&useStderrOnEmptyStdout=true" ) .log("after processing downloaded file: ${file:name}")