ListFile处理器未检测到对先前处理的文件的任何更改并对其进行重新处理。仅供参考,我已经尝试了以下选项进行重新处理,并且只有最后提到的hack才有效。这是在开发环境中运行的单节点NiFi中。
touch -c
命令更改文件时间戳记会更改文件时间戳记,但这也不会导致ListFile处理器的自动触发。 .*test.*\.csv
到test.*\.csv
,然后反之亦然(即像这样来回重复进行重复处理)。 对具有相同旧名称和已修改数据的文件进行重新处理是我们的要求。请帮忙!
有时,如果上游/下游出现意外数据问题,有时甚至需要强制重新处理未经修改的文件。请帮忙!
仍然会遇到这种零星的行为!当ListFile处理器无法响应文件更改时,只有重新启动NiFi才有帮助。
答案 0 :(得分:0)
这可能是延迟的答案。 像ListFiles / ListFtp / ListSftp等旧的List处理器仅使用时间戳跟踪策略来识别更改的文件。处理器用于在其处理器状态下缓存最后一次看到的时间戳,并使用它列出仅具有更大时间戳的文件。 但是,这种方法非常容易出错。因此,他们必须提出一种更好的策略,称为Entity Tracking。这种方法提供了广泛的 文件更改的监视范围。它跟踪指定目录中每个文件的以下参数。
文件的任何更改都反映在这些关键参数中。由于已将它们缓存,因此任何差异都被视为更改,因此更改的文件将显示在成功连接中。