Groovy Nifi:如何从成功队列中仅获取一个FLWO文件?
我只想从我的executescript处理器获取成功“队列”中发送的第一个流文件,但我无法管理它。这是我的代码: 此代码引发FLOWFILE已标记为要传输的异常Groovy Nifi:如何从成功队列中仅获取一个FLWO文件?,groovy,apache-nifi,Groovy,Apache Nifi,我只想从我的executescript处理器获取成功“队列”中发送的第一个流文件,但我无法管理它。这是我的代码: 此代码引发FLOWFILE已标记为要传输的异常 我如何删除其他未使用的流文件,以及如何防止使用fist flowfile获取它们(我的意思是,当我删除此remove命令时,不会出现异常,但进程将从Success队列中获取每个流文件,我如何防止它?) def List flowFiles=session.get(1) def name=“”; def count=“”; 双值=0.0;
def List flowFiles=session.get(1)
def name=“”;
def count=“”;
双值=0.0;
def numb=0;
如果(flowFiles.size()>1){
session.remove(flowFiles.remove(flowFiles.size()-1))
}
List flowFiles2=new ArrayList();
for(流文件中的流文件k){
name=k.getAttribute(“realName”)
count=k.getAttribute(“count”)
值=计数为双精度;
numb=Math.round(值)
session.transfer(flowFiles.get(0),REL_成功)
}
会话.删除(流文件)
如果要获取一个流文件,没有理由使用列表 那么:
def FlowFile flowFile = session.get();
不能对同一个流文件调用remove和transfer
如果你想移除它,那么它就不见了,无法转移
如果要将其传输到下一个队列,则无法将其删除。如何确保只发送和接收了一个flowfle?session.get()将最多返回一个flow文件。如果成功队列中有10个以上的flowFile?我应该如何从中仅获取一个流文件?nifi synchonizely是否会发送每个放置在成功关系中的流文件?是否有任何方法可以从队列中仅获取第一个流文件?
def FlowFile flowFile = session.get();