首页 > 解决方案 > NiFi:如果失败,则以有限的尝试运行 ExecuteStreamCommand 处理器

问题描述

我在 NiFi 中有一个如下所示的处理器:

NiFi流 基本上,ExecuteStreamCommand将运行一个 Python 脚本来执行一些过程,然后流文件将去RouteOnAttribute检查以前的 Python 脚本是成功还是失败。如果成功,它将转到下一个处理器(我未在此图中显示)。但如果失败,流文件将转到另一个ExecuteStreamCommand处理器发送警报通知(通过电子邮件、聊天等)。然后它将重新运行第一个ExecuteStreamCommand,直到脚本运行没有错误。

我的问题是,如果 python 脚本出现错误,它会一直发出警报,直到我暂停处理器。那么,是否有任何其他处理器或设置要添加到此流程中,以便在出现错误的情况下,它将重新运行 Python 脚本一次有限的尝试(此管道设置为每小时运行一次,因此它的数量autoretry 应该为每个流文件单独计算)。或者我是否必须为此目的在 python 脚本中添加任何代码?

TL;DR 我正在寻找一个要添加到我的管道中的 NiFi 处理器,它可以帮助我计算同一流文件通过处理器的时间,以限制自动重试 python 运行脚本

标签: pythonapache-nifi

解决方案


有几种方法可以实现它。

一些参考:如何在 nifi 中控制调用 HTTP 处理器的重试


推荐阅读