如何使 Nifi 处理器事件驱动

How to make a Nifi processors event driven

例如,如果有一个由 3 个处理器 P1、P2、P3 组成的管道。当 P2 生成输出流文件时,恰好 5 分钟后我希望处理器 P3 工作。

我不能使用固定的 CRON 作业,因为 P2 处理器可以随时 运行。

Nifi 版本 - 1.9.1

查看 RetryFlowFile Maximum Retries = 1 放在 P2 和 P3 之间。

它可以在重试超过时惩罚流文件。它应该立即执行,最大重试次数 =1。

然后将惩罚持续时间设置为 5 分钟。

一切就绪。 P3 不应在 5 分钟内从队列中取出流文件。


选项 2

您可以使用 ExecuteGroovyScript 代替 retryflowfile 和以下脚本来惩罚通过它的所有内容。

def ff = session.get()
if( !ff ) return
ff = session.penalize(ff)
REL_SUCCESS << ff

ps:不要忘记为此处理器设置惩罚持续时间