Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Groovy Nifi:如何从成功队列中仅获取一个FLWO文件?_Groovy_Apache Nifi - Fatal编程技术网

Groovy Nifi:如何从成功队列中仅获取一个FLWO文件?

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;

我只想从我的executescript处理器获取成功“队列”中发送的第一个流文件,但我无法管理它。这是我的代码: 此代码引发FLOWFILE已标记为要传输的异常

  • 我如何删除其他未使用的流文件,以及如何防止使用fist flowfile获取它们(我的意思是,当我删除此remove命令时,不会出现异常,但进程将从Success队列中获取每个流文件,我如何防止它?)

    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();