nifi-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Peter Wicks (pwicks)" <pwi...@micron.com>
Subject OnPrimaryNodeStateChange vs Primary Only configuration
Date Fri, 16 Aug 2019 15:07:37 GMT
I'm working on a bug fix for HandleHttpRequest and need to check if a processor is configured
to run only on primary node (and not if a processor has the attribute that ONLY allows it
to run on primary node).
Here is the scenario for background:

  *   NiFi cluster, but all nodes are on the same physical machine; we do this to let developers
develop/test in a cluster without needing a lot of infrastructure before deploying to the
real prod cluster.
  *   To avoid Port conflicts, HandleHttpRequest is setup to run only on master. But, if there
is a master node change then the Http server is not properly shutdown and we get a port conflict
when the new master node starts up the new instance of the processor.

The problem is I don't think the Primary Only scheduling configuration is exposed to the processor.
I'd like to do something like the code below:

    @OnPrimaryNodeStateChange
    public void onPrimaryNodeChange(final PrimaryNodeState newState) {
        // If this processor is running in Primary Only
        // and this is processor is not master, shutdown the http server.
        If(this.isMasterOnlyScheduled) shutdown();
    }

I can do some work to expose this, but I thought I'd ask in case I'm missing it.

Thanks,
  Peter

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message