I saw it several times and I have a strong conviction this is an
anti-pattern. A dataflow must not mess with start/stop state of processors
or process groups.

Instead, a flow is always running and one puts a conditional check to
either not get the data in or reroute/deny it.

If you need to coordinate between processors, use wait/notify.

If you need to coordinate across nodes, consider DistributedMapCache with a
variety of implementations.

Finally, can use external stores directly if need to coordinate with other
systems.

These become part of the flow design.

Andrew

On Fri, Feb 26, 2021, 7:42 AM Tomislav Novosel <
tomislav.novo...@clearpeaks.com> wrote:

> Hi guys,
>
>
>
> I want to stop the processor after exceeding maximum number of retries.
>
> For that I'm using RetryFlowFile processor, after 5 times of retry, it
> routes
>
> flowfile to retries_exceeded.
>
>
>
> When that kicks in, I want to stop the processor which was retried 5 times.
>
>
>
> What is the best approach? I have few ones:
>
>
>
>    - Execute shell script which sends request to nifi-api to set
>    processor state to STOPPED
>    - Put InvokeHTTP processor to send request
>
>
>
> The downside is, what if processor-id changes, e.g. deploying to another
> env or nifi restart, not sure about that.
>
> Also, it is nifi cluster with authentication and SSL, so it complicates
> the things.
>
>
>
> Maybe someone has much simpler approach, with backpressure or something.
>
>
>
> Regards,
>
> Tom
>

Reply via email to