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

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 запускался один раз, затем останавливался, а затем, когда он запускается снова, он забывает предыдущее состояние. "какая-то закрученная логика" :)

Благодарность

3
Rakesh Prasad 11 Сен 2018 в 08:29

1 ответ

Лучший ответ

1. Использование GetFile Processor:

Вы можете использовать процессор GetFile вместо процессоров ListFile + FetchFile и GetFile doesn't store the state.

  • Процессор GetFile Каждый раз получает все файлы в каталоге.

  • Свойство Сохранить исходный файл . Если истинно , после него идет файл not deleted. был скопирован в Репозиторий Контента; это приводит к тому, что файл собираются постоянно и полезны для целей тестирования. Если не для сохранения оригинального NiFi потребуются права на запись в каталог, в который он тянет, иначе он проигнорирует файл.

(или)

2. Использование ListFile Processor:

Используя NiFi RestAPI, мы можем очистить состояние list file processor, а затем процессор будет каждый раз выводить список всех файлов в каталоге.

Чистое состояние процессора:

POST 
/processors/{id}/state/clear-requests 

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

  1. Используйте Rest Api, чтобы остановить процессор ListFile

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

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

См. это и < a href = "http://apache-nifi-developer-list.39713.n7.nabble.com/Reg-starting-and-Stopping-processor-td7930.html" rel = "noreferrer"> это ссылки ОСТАНОВИТЬ процессор через RestApi

6
Shu 11 Сен 2018 в 07:17