我有一个预计将各种文件复制到传入文件夹的路线。路线将继续移动这些文件到一个临时文件夹,在那里它会做其他的事情。路线如下:Apache Camel - 将大文件复制到使用者文件夹
<route id="incoming" >
<from uri="file://my/path/incoming"/>
<to uri="file://my/path/incoming/temp"/>
</route>
问题是这些文件可能相当大。可以说1Gb。为了将该文件复制到传入的文件夹中,可能需要10秒钟。在这10秒内,消费者轮询该目录,并且由于部分文件仍在被复制,所以抛出异常。我可以使用哪种解决方法?
我用readLock所有战略(主要是改变了),但我得到一个异常:
(The process cannot access the file because it is being used by another process)
修改后的URI如下:
<from uri="file://my/file/path?readLockCheckInterval=3000&readLock=changed"/>
仍然没有运气虽然
您的异常应该处理。例外是说它不能读取文件。通过处理例外,您可以例如停止路线,暂停,发送电子邮件,发送推文以支持或正确处理。不使用这些选项时,您没有收到正确的异常? – Namphibian 2014-09-01 02:12:40
我面临同样的问题并寻找解决方案。 [latest documentation](http://camel.apache.org/file2.html)提到'changed ... readLockCheckInterval ...这个选项仅适用于Camel 2.8以后的FTP组件。不确定已更改或readLockCheckInterval或两者仅适用于FTP。 – ren78min 2015-09-06 20:14:16