我的用例。
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
。
获取文件处理器 每次获取目录中的所有文件。
保留源文件属性 如果为 true,则文件在其之后
not deleted
已复制到内容存储库;这会导致文件是 持续拾取,可用于测试目的。如果不是 保留原始 NiFi 将需要对其目录的写入权限 正在拉取,否则它将忽略该文件。
(或(
2. 使用列表文件处理器:
利用NiFi RestAPI,我们可以清除列表文件处理器的状态,然后处理器每次都会列出目录中的所有文件。
清除处理器的状态:
POST
/processors/{id}/state/clear-requests
在开始列出目录中的所有文件流之前
使用 Rest API 停止 ListFile 处理器
清除列表文件处理器的状态
启动列表文件处理器。
请参阅此链接,通过 RestApi 停止处理器