Apache camel ApacheCamel ftp:如何防止ftp组件在写入文件时处理该文件

Apache camel ApacheCamel ftp:如何防止ftp组件在写入文件时处理该文件,apache-camel,integration,camel-ftp,Apache Camel,Integration,Camel Ftp,在我的骆驼应用程序中,它是来自ftp服务器的进程文件。当我测试时,我发现在上传文件的过程中,我的路线开始拾取该文件并执行该过程。我已将readLock设置为“已更改”,延迟为“60000”,我的文件大约为500米。我遗漏了什么吗?请注意,delay选项只是一个固定的间隔,没有与readLock“耦合” readLock选项changed每秒检查文件大小是否已更改。由于上传速度慢,这可能是仍在上传的文件已被消耗的原因 您可以尝试将readLockCheckInterval增加到1秒以上 有关更多详

在我的骆驼应用程序中,它是来自ftp服务器的进程文件。当我测试时,我发现在上传文件的过程中,我的路线开始拾取该文件并执行该过程。我已将readLock设置为“已更改”,延迟为“60000”,我的文件大约为500米。我遗漏了什么吗?

请注意,
delay
选项只是一个固定的间隔,没有与readLock“耦合”

readLock选项
changed
每秒检查文件大小是否已更改。由于上传速度慢,这可能是仍在上传的文件已被消耗的原因

您可以尝试
readLockCheckInterval
增加到1秒以上


有关更多详细信息和选项,请参见(选项
readLock

请注意,FTP服务器更改的读取锁定通常只有hh:mm表示时间(而不是秒),因此它通常无法快速检测到更改。对于FTP传输,如果文件使用临时名称写入,然后在完成后重命名,或者在准备下载时使用额外的标记文件(完成的文件)发出信号,则效果总是更好。从camel doc,我发现
markerFile-camel创建了一个标记文件(fileName.camelLock),然后对其进行锁定。此选项不适用于FTP组件
,这是否意味着标记文件不能在我的情况下使用-FTP组件。如果文件使用临时名称写入,然后在完成后重命名,如何实现
?这是上载/写入这些文件的另一个系统。你说的是下载文件。您是否同时使用Camel进行上传和下载?如果是这样的话,那么阅读文档作为临时文件的文档。是的,有另一个系统来上传文件。我只使用camel下载文件。因此,我想将readLockCheckInterval设置为1min可以帮助我解决问题。
此时间间隔用于在尝试获取读锁之间休眠。
因此,在每次检查期间,检查机制似乎不应改变。是的,例如,如果带有hh:mm的克劳斯注释适用于您的案例,您必须将
readLockCheckInterval
设置为至少1分钟,以识别仍在上载的文件。然后,Camel将每分钟检查一次文件大小是否已更改,并继续这样做,直到两次检查之间文件大小没有更改。这显然会导致文件消耗的显著延迟