Nifi:如何根据nifi中的flowFile数量处理trnasfer'交易'?

时间:2017-10-25 18:04:24

标签: groovy apache-nifi

我希望在我的flowFile队列中有一定量的flowFile时进行传输操作,并对未使用的File进行删除操作。可以从我的flowfile数组列表中删除操作导致dissapear flowfile吗?这是我的代码:

import org.apache.commons.io.IOUtils
import java.nio.charset.StandardCharsets
import groovy.lang.*

def flowFile=session.get();
def name=flowFile.getAttribute("realName")
def count=flowFile.getAttribute("count")
def  filename=flowFile.getAttribute("filename")
def value= count as Double;
def numb=Math.round(value)
def List<FlowFile> flowFiles= new ArrayList<>();
flowFiles.add(flowFile)

if(flowFiles.size()==numb){
for(FlowFile i in flowFiles){
if(i.getAttribute("filename").substring(0,10)==name){
session.transfer(i,REL_SUCCESS);

}
}
}

else{

session.remove(flowFile);

}

1 个答案:

答案 0 :(得分:1)

如果您正在等待接收X个流文件,您可以使用类似的内容(假设您需要10个流文件):

def flowfileList = session.get(10)
if(flowfileList.size() < 10) {
  session.rollback()
  return
}
​// If you get here, you have 10 flowfiles in flowfileList