Package org.apache.storm.nimbus

# Class TimeOutWorkerHeartbeatsRecoveryStrategy

java.lang.Object
org.apache.storm.nimbus.TimeOutWorkerHeartbeatsRecoveryStrategy

All Implemented Interfaces:
  `IWorkerHeartbeatsRecoveryStrategy`

public class TimeOutWorkerHeartbeatsRecoveryStrategy extends Object implements IWorkerHeartbeatsRecoveryStrategy
Wait for a node to report worker heartbeats until a configured timeout. For cases below we have strategies:

1: When nimbus gains leader ship, it will decide if the heartbeats are ready based on the reported node ids, supervisors/nodes will take care of the worker heartbeats recovery, a reported node id means all the workers heartbeats on the node are reported.

2: If several supervisor also crush and will never recover[or all crush for some unknown reason], workers will report their heartbeats directly to master, so it has not any effect.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `TimeOutWorkerHeartbeatsRecoveryStrategy()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `isReady(Set<String> nodeIds)`
  Function to decide if the heartbeats is ready.
  `void`
  `prepare(Map conf)`
  Function to prepare the strategy.
  `void`
  `reportNodeId(String nodeId)`
  report the node id to this strategy to help to decide `isReady`.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### TimeOutWorkerHeartbeatsRecoveryStrategy

    public TimeOutWorkerHeartbeatsRecoveryStrategy()

- ## Method Details

  - ### prepare

    public void prepare(Map conf)
    Description copied from interface: `IWorkerHeartbeatsRecoveryStrategy`
    Function to prepare the strategy.
    Specified by:
      `prepare` in interface `IWorkerHeartbeatsRecoveryStrategy`
    Parameters:
      `conf` - config

  - ### isReady

    public boolean isReady(Set<String> nodeIds)
    Description copied from interface: `IWorkerHeartbeatsRecoveryStrategy`
    Function to decide if the heartbeats is ready.
    Specified by:
      `isReady` in interface `IWorkerHeartbeatsRecoveryStrategy`
    Parameters:
      `nodeIds` - all the node ids from current physical plan[assignments], read from `ClusterState`
    Returns:
      true if all node worker heartbeats reported

  - ### reportNodeId

    public void reportNodeId(String nodeId)
    Description copied from interface: `IWorkerHeartbeatsRecoveryStrategy`
    report the node id to this strategy to help to decide `isReady`.
    Specified by:
      `reportNodeId` in interface `IWorkerHeartbeatsRecoveryStrategy`
    Parameters:
      `nodeId` - the node id from reported SupervisorWorkerHeartbeats