запустите nifi flow один раз и сообщите мне, когда он закончится - PullRequest
0 голосов
/ 29 июня 2018

Я использую rest api в своей программе, я создал группу процессоров для сохранения коллекции mongodb в файл json: enter image description here Я хочу запускать планирование только один раз, поэтому я установил «Запустить расписание» на 10000 секунд. Затем я остановлю группу, когда поток данных будет запущен один раз, и я создаю процессор уведомлений и добавлю DistributedMapCacheService.But DistributedMapCacheClientService процессора Notify соединяется только с DistributedMapCacheService в самом nifi, это никогда не будет моей программой.

Я пытаюсь использовать свой собственный сервер сокетов, но я получаю только сообщение "nifi", но больше никаких сообщений. У меня такой вопрос: если я хочу, чтобы планирование запускалось один раз и останавливалось, как мне узнать, когда я должен его остановить? Или есть какой-то другой способ достичь моей цели, например, определить, существует ли файл json, или использовать инкрементные данные (если планирование запускается дважды, данные будут повторяться дважды)?

1 Ответ

0 голосов
/ 29 июня 2018

Как сказал @daggett, вы можете сделать это синхронно, вы можете использовать HandleHttpRequest в качестве триггера и HandleHttpResponse для управления ответом. Для асинхронного, если у вас есть несколько вариантов для уведомления, как PutTCP, PostHTTP, GetHTTP, использовать FTP, файловую систему, XMPP или что-то еще.

Если планирование запускается дважды, дублированные элементы зависят от используемых вами процессоров, некоторые из них имеют состояние, а другие нет, но если вы сталкиваетесь с проблемами с повторяющимися элементами, вы можете использовать процессор DetectDuplicate .

...