我的用例。
Some processing somewhere else add files to some dir (_use_it) -> call my flow using REST -> Now I want my process to read all files from mentioned directory (_use_it).
我想每次都从该目录读取所有文件,而不仅仅是更改/添加的文件。我无法启动/停止过程。此流程必须作为后台进程运行。
我想,我正在寻找ListFile处理器运行一次,然后停止,然后再次运行时,它会忘记先前的状态。 “一些扭曲的逻辑”:)
谢谢
答案 0 :(得分:4)
1。使用GetFile Processor:
您可以使用 GetFile 处理器代替 ListFile + FetchFile处理器和 GetFile 处理器doesn't store the state
。
GetFile处理器每次都获取目录中的所有文件。
保留源文件属性如果 true ,则该文件位于其后的not deleted
已复制到内容存储库;这导致文件是
不断收集,对于测试目的很有用。如果不
保留原始NiFi将需要对其目录的写入权限
正在从中拉出,否则它将忽略该文件。
(或)
2。使用ListFile Processor:
使用NiFi RestAPI,我们可以清除列表文件处理器的状态,然后处理器将每次列出目录中的所有文件。
处理器的清除状态:
POST
/processors/{id}/state/clear-requests
在开始列出目录流中的所有文件之前
使用Rest Api停止ListFile处理器
清除ListFile处理器的状态
启动ListFile处理器。