Обработчик ListFile, заставляет процессор каждый раз выводить полный каталог - PullRequest
0 голосов
/ 11 сентября 2018

Мой вариант использования.

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 голосов
/ 11 сентября 2018

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 

Перед тем, как вы начнете перечислять все файлы в потоке каталогов

  1. Используйте Rest Api для остановки процессора ListFile

  2. Очистить состояние процессора ListFile

  3. Запустите процессор ListFile.

См. это и это ссылки для остановки процессора через RestApi

...