nifi-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andy Christianson <achristian...@hortonworks.com>
Subject Re: NIFI:how to transfer certain amount of flowfile
Date Thu, 02 Nov 2017 17:34:32 GMT
Hi Sally,

Glad you have found NiFi useful.

From the way you describe it, it sounds almost like you are trying to create a stateful flow.
This can be tricky. I recommend giving MattyB's script tester a shot to see if you can develop
your script in isolation before deploying it to a NiFi instance.

I'm not 100% on what you're trying to do, but yes, it does seem like wait/notify might help.

If, after giving MattyB's script tester a thorough try, you still are unable to accomplish
your task, please give us a higher-level description of what you are attempting to do. It
helps to know more about your general intent, rather than the specific steps you have tried
which are failing. It would also help to know a little more about your environment, particularly
if your flow involves multiple NiFi nodes or is just a single node.

Regards and good luck,

Andy
________________________________________
From: sally <sally.tkhilaishvili@gmail.com>
Sent: Saturday, October 28, 2017 3:51 PM
To: users@nifi.apache.org
Subject: NIFI:how to transfer certain amount of flowfile

I want to get one flowFile (from success queue) to read count attribute from
it, and then i want to get count number flowfiles and put it in flowfile
List after that i will check if flowfile list size == count i will transfer
all receveied flowfiles I have tried codes like this, but this logic doesn't
work for me should i use wait/notify processor or routeonattribute
processor? can you give me any alternative idea of how can i make this task?

import org.apache.commons.io.IOUtils
import java.nio.charset.StandardCharsets

def flowFile = session.get()
if (!flowFile) return
int numb=(flowFile.getAttribute("count") as Double).round()
int  m=numb;
session.rollback();
def flowFiles = session.get(m)

if (flowFiles.size()==m){

 //transfer first and other files to success

    session.transfer(flowFiles, REL_SUCCESS)

}else{
   //rollback everything we got from incoming queue
    session.rollback()
}



--
Sent from: http://apache-nifi-users-list.2361937.n4.nabble.com/




Mime
View raw message