如何将nifi多个流文件读取到groovy脚本中

问题描述 投票:0回答:1

我有两个流蝇,我想将这两个流文件读入 groovy 脚本,我在 groovy 中使用以下行来读取流文件内容,但我如何知道我实际上在这里读取哪个流文件我想在groovy中逐行比较两个流文件内容,如果内容不同,那么我只需要从groovy脚本将不同的内容发送到输出流文件中,谢谢。

def flowFile = session.get()
if(!flowFile) return

如何从上面知道我正在从两个传入的流文件中读取哪个流文件。

groovy apache-nifi
1个回答
0
投票

在groovy处理器中,此代码

session.get()
从入站队列返回第一个函数。

队列中文件的顺序由其属性定义,默认情况下它是流文件的时间戳。

要从队列中读取前 2 个文件,您可以在会话 get 中使用 int 参数:

def flowFileList = session.get(2)
if(!flowFileList) return
if(flowFileList.size()<2) {
    session.rollback() // return files back
    return
}
...

https://www.javadoc.io/doc/org.apache.nifi/nifi-api/latest/org/apache/nifi/processor/ProcessSession.html#get(int)

© www.soinside.com 2019 - 2024. All rights reserved.