Как потоки процессоров запускаются в потоке Nifi? - PullRequest
0 голосов
/ 08 декабря 2018

Я пытаюсь научиться писать пользовательский процессор Nifi и из документации процессор должен быть ориентирован на многопоточность.Я хотел понять, что если, скажем, у меня есть 100 записей потоковых файлов, подключенных к моему пользовательскому процессору, будет ли метод onTrigger моего процессора (предположим, что я не включил @TriggerSerially в этом методе) запускаться 100 раз и в 100 отдельныхпотоки (независимо от того, одновременно или нет), или есть вероятность, что один файл потока используется в качестве входных данных для более чем одного потока метода onTrigger на моем процессоре.

Я извиняюсь, если не правильно сформулировал вопрос, но, по сути, возможно, что количество срабатываний метода onTrigger моего процессора больше, чем число потоковых файлов, подключенных в качестве входных данных кпроцессор?

1 Ответ

0 голосов
/ 10 декабря 2018

Количество потоков, выполняющих процессор, основано на количестве одновременных задач на вкладке планирования, которое по умолчанию равно 1. Если вы увеличите это значение до 2, то 2 потока одновременно выполняют метод onTrigger.Один файл потока будет обрабатываться только одним из этих потоков.

Аннотация @TriggerSerially не позволяет вам увеличивать сопутствующие задачи, поэтому никогда не будет одновременного выполнения.Распространенным вариантом использования для этого может быть исходный процессор, который извлекает данные откуда-то, обычно вам не нужно одновременно извлекать одни и те же данные дважды.

...