Talend tWaitForFile不足

时间:2014-02-17 14:34:19

标签: talend

我们有一个生产者进程将文件写入特定文件夹,该文件夹连续运行,我们必须使用talend逐个读取文件,有2个问题:

  • 第一个:tWaitForFile只读取在启动之前存在的文件,因此在组件启动后创建的文件对它不可见。
  • 第二种:没有办法知道文件是否由生产者进程发布,它可能在未完全写入时被读取,tWaitForFile的参数_wait_release_在Linux系统上不起作用!

那么如何让Talend从文件编号增加的目录中读取完整的书面文件?

1 个答案:

答案 0 :(得分:2)

我不确定你的第一期是什么意思。 tWaitForFile具有在文件夹中创建,修改或删除文件时触发的选项。

至于第二个问题,这里最好的选择是文件制作者创建一个OK或控制文件,当它写完你想要的文件时,它是一个0字节的触摸。

在这种情况下,您只需查找OK文件的外观,然后选择相关的已完成文件。如果您将2个文件命名为相同但文件扩展名不同(OK文件通常称为“.OK”,那么这应该很容易找到。所以你要设置你的tWaitForFile来查找“* .OK”文件然后将其连接到一个迭代到tFileInputDelimited(如果你想要选择一个分隔的文本文件),然后将文件名声明为((String)globalMap.get("tWaitForFile_1_CREATED_FILE")).substring(0,((String)globalMap.get("tWaitForFile_1_CREATED_FILE")).length()-3) + ".txt"

我在下面提供了一些屏幕截图来帮助您:

Job Setup

tWaitForFile configuration

enter image description here