Interface ILeaderElector

    • Method Detail

      • prepare

        void prepare​(Map<String,​Object> conf)
        Method guaranteed to be called as part of initialization of leader elector instance.
        Parameters:
        conf - configuration
      • addToLeaderLockQueue

        void addToLeaderLockQueue()
                           throws Exception
        queue up for leadership lock. The call returns immediately and the caller must check isLeader() to perform any leadership action. This method can be called multiple times so it needs to be idempotent.
        Throws:
        Exception
      • quitElectionFor

        void quitElectionFor​(int delayMs)
                      throws Exception
        Removes the caller from leadership election, relinquishing leadership if acquired, then requeues for leadership after the specified delay.
        Parameters:
        delayMs - The delay to wait before re-entering the election
        Throws:
        Exception
      • isLeader

        boolean isLeader()
                  throws Exception
        Decide if the caller currently has the leader lock.
        Returns:
        true if the caller currently has the leader lock.
        Throws:
        Exception
      • getLeader

        NimbusInfo getLeader()
        Get the current leader's address.
        Returns:
        the current leader's address, may return null if no one has the lock.
      • awaitLeadership

        boolean awaitLeadership​(long timeout,
                                TimeUnit timeUnit)
                         throws InterruptedException
        Wait for the caller to gain leadership. This should only be used in single-Nimbus clusters, and is only useful to allow testing code to wait for a LocalCluster's Nimbus to gain leadership before trying to submit topologies.
        Returns:
        true is leadership was acquired, false otherwise
        Throws:
        InterruptedException
      • getAllNimbuses

        List<NimbusInfo> getAllNimbuses()
                                 throws Exception
        Get list of current nimbus addresses.
        Returns:
        list of current nimbus addresses, includes leader.
        Throws:
        Exception
      • close

        void close()
            throws Exception
        Method called to allow for cleanup. Relinquishes leadership if owned by the caller.
        Specified by:
        close in interface AutoCloseable
        Throws:
        Exception