[ 
https://issues.apache.org/jira/browse/NIFI-238?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14276000#comment-14276000
 ] 

Ryan Blue commented on NIFI-238:
--------------------------------

bq. Can you explain what you mean by "I'm not clear on why I would use some 
method calls?"

This was just to lead into the next few questions, like what yield is doing. 
You're addressing it with your other comments. :)

bq. context.yield() is a way to indicate that there's nothing useful that a 
Processor can do

So I might use this if, for example, I were reading asynchronously and got 0 
bytes. Yield the time to another process and pick up where I left off reading 
the stream? That makes sense.

Why do I use it in the final {{catch (Throwable e)}} block in the Kite 
processor? It makes sense that I want to avoid running continuously on the same 
file when it causes problems. But what is the right way to do that? It seems 
like I could:
1. Penalize the file (if I think might be a file problem)
2. Yield to ensure I wait at least 1 second
3. Do nothing and count on the framework detecting a rollback (or several in a 
row) and taking action. It sounds like this happens when the exception isn't a 
{{ProcessingException}}, so I don't really need to do this in my code?

Thanks for the info on backpressure. I'll read that and probably ask more 
questions.

> Add processors to write datasets using Kite
> -------------------------------------------
>
>                 Key: NIFI-238
>                 URL: https://issues.apache.org/jira/browse/NIFI-238
>             Project: Apache NiFi
>          Issue Type: New Feature
>          Components: Extensions
>            Reporter: Ryan Blue
>
> I think it would be great to have a set of processors that parse incoming 
> flow files and add the data to Kite datasets.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to