Nifi:如何从成功队列中只获得一个flwoFile?

时间:2017-10-25 12:54:53

标签: groovy apache-nifi

我想只获得第一个从我的executioncript处理器发送成功'队列'的流文件,但我无法管理它是我的代码: 而且这个代码的例外情况是流量文件已被标记为转移

  1. 如何删除其他未使用的流文件以及如何防止使用第一个流文件获取它们(我的意思是当我删除此删除命令时异常将不存在但进程将采取每个流文件形式成功队列,我怎么能防止它?)

    def List<FlowFile> flowFiles= session.get(1)
    def name="";
    def  count=" ";
    Double   value=0.0;
    def  numb=0;
    if(flowFiles.size()>1){
    session.remove(flowFiles.remove(flowFiles.size()-1))
    
    }
    List<FlowFile> flowFiles2 = new ArrayList<FlowFile>();
    for(FlowFile  k in flowFiles){
    name=k.getAttribute("realName")
    count=k.getAttribute("count")
    value= count as Double;
    numb=Math.round(value)
    session.transfer(flowFiles.get(0),REL_SUCCESS)
    
    
    }   
    session.remove(flowFiles)
    

1 个答案:

答案 0 :(得分:2)

如果你想获得一个流文件,没有理由使用List。

怎么样:

def FlowFile flowFile = session.get();

您不能在同一个流文件上调用删除和传输。

如果你想删除它,它就会消失,无法转移。

如果要将其传输到下一个队列,则无法将其删除。