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

时间:2018-09-11 05:29:41

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

谢谢

1 个答案:

答案 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 

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

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

  2. 清除ListFile处理器的状态

  3. 启动ListFile处理器。

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