我有GetHttp和InvokeHttp Nifi处理器在Nifi中启动流程,但我希望他们只从URL获取一次并将数据传递到下一个进程使用处理器配置我无法关闭调度,如何实现这一点
答案 0 :(得分:6)
Apache NiFi处理器和流程专为持续数据流而设计,而不是单个"作业执行"或者"批处理"。我们经常使用的一个比喻是,NiFi不是建造和安装管道来运行水,而是帮助您沿着已经流动的河流挖掘灌溉沟渠。数据已经存在(并且一直在移动)。
如果这确实是您需要触发的一次性操作,您可以将运行时间表设置为30 sec
并手动开始,然后停止这些处理器。它们将执行一次,并且只要您在30秒内停止它们,就不会再次执行。
如果您不能手动执行此操作,则可以将运行计划设置为52 weeks
之类的内容。您还可以将计划策略更改为CRON driven
,并将运行计划设置为具有非常长计划的crontab参数。
正如@daggett所指出的那样,你也可以使用Wait
/ Notify
处理器触发一个否则无法执行的流程,但这仅适用于InvokeHTTP
,{{1是一个源处理器。
答案 1 :(得分:0)
InvokeHttp
可能不是初始的,可能会被来自其他处理器的传入流文件触发。
因此,您可以在InvokeHTTP
处理器之前和之后放置一些同步逻辑。
例如,您可以使用Wait
/ Notify
个处理器。