当使用twaitforfile或自定义java代码将文件从一个目录传输到另一个目录时,如何产生时间延迟?

1l5u6lss  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(315)

我正在使用talend从源文件夹拾取文件并传输到目标文件夹,但是我只希望在文件完全写入源文件夹时拾取文件进行处理,或者在文件主动复制到源文件夹的过程中/时不拾取文件进行处理。
我在尝试将文件从源移动到目标时意识到了这一点。当文件仍被写入源文件夹时,它会显示一条错误消息“文件仍被其他进程使用”,但是我不希望每次运行都触发该错误,我希望跳过并移动到迭代文件夹中的下一个文件。
我可以在组件之间使用twait或twaitforfile,或者添加java代码来处理它,例如“presenttime(sysdate)-filetime(arrivaltimeinto the folder)>时差(假设大约3-5分钟)”
仅当满足条件时才将文件移动到目标文件夹。
请建议哪一个是处理这个问题最有效的方法。

ut6juiuv

ut6juiuv1#

在twaitforfile的高级设置中,您有一个选项“wait\u release”:您可以设置它,当检测到一个文件时,它将在第一个文件之后执行一个ms的2d检查,以确保该文件被释放(这样它就不会被主动复制到存储库)。当文件被完全复制后,您就可以使用它了。

相关问题