NiFi:如果失败,请尝试尝试运行ExecuteStreamCommand处理器

时间:2019-08-12 08:47:50

标签: python apache-nifi

我在NiFi中有一个看起来像这样的处理器:

NiFi flow 基本上,ExecuteStreamCommand将运行Python脚本执行某些处理,然后流文件将转到RouteOnAttribute,以检查先前的Python脚本运行成功还是失败。如果成功,它将转到下一个处理器(此图中未显示)。但是,如果失败,则流文件将转到另一个ExecuteStreamCommand处理器以发送警报通知(通过电子邮件,聊天等)。然后它将再次重新运行第一个ExecuteStreamCommand,直到脚本运行无误为止。

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

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

1 个答案:

答案 0 :(得分:0)

有几种方法可以实现它。

一些参考文献:how to control retries of invoke HTTP processor in nifi