[
https://issues.apache.org/jira/browse/NIFI-9475?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Timea Barna updated NIFI-9475:
------------------------------
Description:
For a processor that routes to failure, in NiFi I have 3 options:
1) Loop 'failure' back to the processor and retry forever
2) Auto-terminate or route the data elsewhere without any retries
3) Build a complex retry loop that creates or updates an attribute, routes on
that attribute to determine whether or not we've exceeded the maximum number of
retries, and if not penalizes the FlowFile (typically with a Script processor)
and then routes back to try the FlowFile again.
This provides a poor user experience and poor performance and results in very
complex flows that are difficult to understand and maintain.
As a user, when I configure a Processor, I should be able to indicate that for
Relationship ABC, I want to retry the FlowFile 5 times. Then, if the Processor
transfers a FlowFile to that relationship, it should instead transfer the
FlowFile back to its original queue and increment the transfer count for that
relationship from 0 to 1 and penalize the FlowFile. If the Processor processes
it again and transfers it to the same Relationship again, it'll again put it
back to the original queue and increment the count to 2. Only when the data is
routed to that Relationship 5 times (because that's the configured retry count
in this example) should the FlowFile actually be transferred to that
corresponding connection(s) or auto-terminated, as the flow is configured.
> Provide Framework-Level Retries for NiFi Relationships
> ------------------------------------------------------
>
> Key: NIFI-9475
> URL: https://issues.apache.org/jira/browse/NIFI-9475
> Project: Apache NiFi
> Issue Type: Improvement
> Reporter: Timea Barna
> Assignee: Timea Barna
> Priority: Major
>
> For a processor that routes to failure, in NiFi I have 3 options:
> 1) Loop 'failure' back to the processor and retry forever
> 2) Auto-terminate or route the data elsewhere without any retries
> 3) Build a complex retry loop that creates or updates an attribute, routes on
> that attribute to determine whether or not we've exceeded the maximum number
> of retries, and if not penalizes the FlowFile (typically with a Script
> processor) and then routes back to try the FlowFile again.
> This provides a poor user experience and poor performance and results in very
> complex flows that are difficult to understand and maintain.
> As a user, when I configure a Processor, I should be able to indicate that
> for Relationship ABC, I want to retry the FlowFile 5 times. Then, if the
> Processor transfers a FlowFile to that relationship, it should instead
> transfer the FlowFile back to its original queue and increment the transfer
> count for that relationship from 0 to 1 and penalize the FlowFile. If the
> Processor processes it again and transfers it to the same Relationship again,
> it'll again put it back to the original queue and increment the count to 2.
> Only when the data is routed to that Relationship 5 times (because that's the
> configured retry count in this example) should the FlowFile actually be
> transferred to that corresponding connection(s) or auto-terminated, as the
> flow is configured.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)