[ https://issues.apache.org/jira/browse/NIFI-3414?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15963318#comment-15963318 ]
ASF subversion and git services commented on NIFI-3414: ------------------------------------------------------- Commit 9583ca99c1e4b2d3c43511939a2a148d20f8e1ac in nifi's branch refs/heads/master from [~ijokarumawak] [ https://git-wip-us.apache.org/repos/asf?p=nifi.git;h=9583ca9 ] NIFI-3414: Added EnforceOrder processor Use it with FirstInFirstOutPrioritizer, it can enforce original ordering of 'out-of-order' FlowFiles. nifi-mock is modified to support FlowFile assertion using Prioritizer. Signed-off-by: Matt Burgess <mattyb...@apache.org> NIFI-3414: Added EnforceOrder processor Incorporated review comments, added displayNames. Signed-off-by: Matt Burgess <mattyb...@apache.org> NIFI-3414: Added EnforceOrder processor Incorporate review comments: - Moved nifi-standard-prioritizers dependency to top level nifi/pom.xml. - Changed default initial order from 1 to 0. - Fixed typos. - Use session.get(batchCount). Signed-off-by: Matt Burgess <mattyb...@apache.org> NIFI-3414: Added EnforceOrder processor When a FlowFile is transferred to success, remove attributes previously set when it was transferred to wait or failure. Signed-off-by: Matt Burgess <mattyb...@apache.org> This closes #1496 > Implement an EnforceOrder processor > ----------------------------------- > > Key: NIFI-3414 > URL: https://issues.apache.org/jira/browse/NIFI-3414 > Project: Apache NiFi > Issue Type: New Feature > Reporter: Matt Burgess > Assignee: Koji Kawamura > > For some flows, it is imperative that the flow files are processed in a > certain order. The PriorityAttributePrioritizer can be used on a connection > to ensure that flow files going through that connection are in priority > order, but depending on error-handling, branching, and other flow designs, it > is possible for flow files to get out-of-order. > I propose an EnforceOrder processor, which would be single-threaded and have > (at a minimum) the following properties: > 1) Order Attribute: This would be the name of a flow file attribute from > which the current value will be retrieved. > 2) Initial Value: This property specifies an initial value for the order. The > processor is stateful, however, so this property is only used when there is > no entry in the state map for current value. > The processor would store the Initial Value into the state map (if no state > map entry exists), then for each incoming flow file, it checks the value in > the Order Attribute against the current value. If the attribute value > matches the current value, the flow file is transferred to the "success" > relationship, and the current value is incremented in the state map. If the > attribute value does not match the current value, the session will be rolled > back. > Using this processor, along with a PriorityAttributePrioritizer on the > incoming connection, will allow for out-of-order flow files to have a sort of > "barrier", thereby guaranteeing that flow files transferred to the "success" > relationship are in the specified order. -- This message was sent by Atlassian JIRA (v6.3.15#6346)