在exec期间删除/移动文件:在Apache Camel中

时间:2017-10-23 15:17:51

标签: apache-camel exec

我有这样的场景:文件夹是某些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}")
 

0 个答案:

没有答案