我的用例。
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 处理器运行一次,然后停止,然后当它再次运行时,它会忘记以前的状态。“一些扭曲的逻辑”:)
谢谢
1. 使用 GetFile 处理器:
您可以使用GetFile处理器代替ListFile + FetchFile 处理器和GetFile处理器doesn't store the state。
GetFile 处理器每次获取目录中的所有文件。
保留源文件属性如果为true,则文件not deleted在已复制到内容存储库之后;这会导致文件不断被拾取,并且对于测试目的很有用。如果不保留原始 NiFi,则需要对其从中提取的目录的写权限,否则它将忽略该文件。
(或者)
2. 使用 ListFile 处理器:
使用NiFi RestAPI我们可以清除列表文件处理器的状态,然后处理器每次都会列出目录中的所有文件。
清除处理器状态:
POST
/processors/{id}/state/clear-requests
Run Code Online (Sandbox Code Playgroud)
在开始列出目录流中的所有文件之前
使用 Rest Api 停止 ListFile 处理器
清除 ListFile 处理器的状态
启动 ListFile 处理器。