Apache NIFI的@onScheduled和@onTrigger之间的区别?

时间:2019-07-01 16:39:04

标签: apache-nifi

我正打算实现一个自定义处理器,该处理器可以从RocketMQ读取消息。

我很需要

  • 一次创建一个MessageCosumer
  • 然后调用MessageCosumer以重复使用消息。

@onScheduled和@onTrigger,我应该使用哪一个以及如何实现?

1 个答案:

答案 0 :(得分:2)

您可以使用MessageConsumer在方法中创建@OnScheduled,将其存储为处理器类中的字段,然后在#onTrigger()方法中调用它。

预定运行处理器(即用户单击/调用API以“启动”处理器),就会调用@OnScheduled方法。 #onTrigger()方法每次在处理器实际执行某些工作单元时运行(即,当一个或多个流文件从传入队列中拉出并对其进行操作时,或者如果计时器是流段中的第一个处理器触发时,则运行该方法) )。 Apache NiFi Developer Guide对此有更多信息,而common scenarios and patterns部分可能会有所帮助。

我还将查看ConsumeJMSAbstractJMSProcessor的源代码,因为它是类似的模式。