Apache nifi Nifi-根据计数或经过的时间处理文件?
我有一个如下的流程, ListFile-->FetchFile-->?ExecuteScript(可能)--->通知 基本上,我想去通知,如果Apache nifi Nifi-根据计数或经过的时间处理文件?,apache-nifi,Apache Nifi,我有一个如下的流程, ListFile-->FetchFile-->?ExecuteScript(可能)--->通知 基本上,我想去通知,如果 总的流文件(从获取文件)是说200或 经过的时间(从最后一个信号开始)大约是3小时 我认为第一个条件很容易实现。我可以有一个groovy脚本,它可以读取流文件的数量,如果200个成功,或者回滚会话 但我想知道如何检查队列中n(数量可以小于200)个流文件的时间是否超过3小时左右 更新 问题是:目前我们有一个批处理(大约200个文件,并且可以根据未来的
- 总的流文件(从获取文件)是说200或
- 经过的时间(从最后一个信号开始)大约是3小时
因此,我正在寻找n个文件或m个小时的运行时间检查。我认为这可能是一个例子——您试图解决一个问题,并且相信计算获取的文件数或运行时间会有所帮助,但Apache NiFi通常不鼓励这种模式,并且对于原始问题还有其他解决方案。我鼓励你更全面地描述你试图解决的更高层次的问题,看看是否有更好的解决方案 不过我会回答这个问题(这些都不是理想的解决方案)
- 您可以使用最小仓位数为200的
处理器MergeContent
- 如您所述,您可以使用
处理器ExecuteScript
- 当
处理器执行时,您可以将值(当前时间戳)写入Notify
,并使用DistributedCacheMapServer
处理器对照当前时间戳检查该值,并使用简单的表达式语言语句比较时间戳值FetchDistributedCacheMap
Wait
/Notify
逻辑示例,因为Wait
处理器所做的就是创建“200个传入流文件| | 3小时经过时间”这样的阈值