如何使 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:不要忘记为此处理器设置惩罚持续时间
例如,如果有一个由 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:不要忘记为此处理器设置惩罚持续时间