2012-03-22 60 views
2

我正在使用Talend Studio项目中的tWaitForFile组件,我想知道是否有一种方法可以确保文件在该文件完全写入磁盘时触发事件。Talend studio tWaitForFile问题

我试图设置高级属性:“等待文件被释放” 但似乎这是无用的,即使它没有完成传输文件触发组件。

有没有人有同样的行为和解决方案来解决这个问题?

服务条款的版本是:4.2.3

回答

4

高级设置“等文件中公布的”仅适用于Windows。它对Unix没有影响,这可能解释了为什么它不适合你。

对于Unix进程来说,一个文件是否被完全写入是很困难的,甚至是不可能的。因此,Talend也没有简单的方法来做到这一点。

(例如,如果你想等到文件的大小不会改变了 - 多久你等待?)

常见的解决方案涉及编写该文件的过程:创建文件首先使用不同的名称,当它完全写入时,将其重命名为其他进程所期望的名称。这样,它会立即显示完整大小。

+2

谢谢!我不知道该功能仅在Windows上可用。最后,我做了一些类似于解决方案的解决方法:我传输大的zip文件,然后在完成时传输一个包含zip名称的控制文件。 tWaitForFile的其他Talend作业等待控制文件,不再在zip文件中。 – 2012-03-30 19:51:33