ListFile 处理器,强制处理器每次都列出完整目录

Rak*_*sad 3 apache-nifi

我的用例。

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 处理器运行一次,然后停止,然后当它再次运行时,它会忘记以前的状态。“一些扭曲的逻辑”:)

谢谢

Shu*_*Shu 6

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)

在开始列出目录流中的所有文件之前

  1. 使用 Rest Api 停止 ListFile 处理器

  2. 清除 ListFile 处理器的状态

  3. 启动 ListFile 处理器。

请参阅链接以通过 RestApi 停止处理器