如何在Nifi流中调用处理器的线程?

时间:2018-12-08 16:13:49

标签: apache-nifi

我正在尝试学习编写自定义Nifi处理器,并且从文档中了解该处理器应该是线程安全的。我想了解的是-如果我有100条流文件记录连接到我的自定义处理器,我的处理器的onTrigger方法(假设我没有在此方法上启用@TriggerSerially)会被触发100次并分别触发100次线程(无论是否并发),或者一个流文件被用作我处理器上onTrigger方法的多个线程的输入。

如果无法正确表达问题,我深表歉意,但从本质上讲,是否有可能触发处理器的onTrigger方法的次数超过了作为输入连接到处理器的流文件的数量?

1 个答案:

答案 0 :(得分:2)

执行处理器的线程数取决于“调度”选项卡上的并发任务数,默认值为1。如果将其增加到2,则2个线程将同时执行onTrigger方法。单个流文件将仅由这些线程之一处理。

@TriggerSerially批注使您无法增加并发任务,因此它强制从不进行并发执行。常见的用例是源处理器从某个地方提取数据,通常您不会并发两次提取相同的数据。