Class/Object

akka.cluster.singleton

ClusterSingletonManager

Related Docs: object ClusterSingletonManager | package singleton

Permalink

class ClusterSingletonManager extends Actor with FSM[State, Data]

Manages singleton actor instance among all cluster nodes or a group of nodes tagged with a specific role. At most one singleton instance is running at any point in time.

The ClusterSingletonManager is supposed to be started on all nodes, or all nodes with specified role, in the cluster with actorOf. The actual singleton is started on the oldest node by creating a child actor from the supplied singletonProps.

The singleton actor is always running on the oldest member with specified role. The oldest member is determined by akka.cluster.Member#isOlderThan. This can change when removing members. A graceful hand over can normally be performed when current oldest node is leaving the cluster. Be aware that there is a short time period when there is no active singleton during the hand-over process.

The cluster failure detector will notice when oldest node becomes unreachable due to things like JVM crash, hard shut down, or network failure. When the crashed node has been removed (via down) from the cluster then a new oldest node will take over and a new singleton actor is created. For these failure scenarios there will not be a graceful hand-over, but more than one active singletons is prevented by all reasonable means. Some corner cases are eventually resolved by configurable timeouts.

You access the singleton actor with ClusterSingletonProxy. Alternatively the singleton actor may broadcast its existence when it is started.

Use factory method ClusterSingletonManager#props to create the akka.actor.Props for the actor.

Not intended for subclassing by user code.

Annotations
@DoNotInherit()
Source
ClusterSingletonManager.scala
Linear Supertypes
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ClusterSingletonManager
  2. FSM
  3. ActorLogging
  4. Listeners
  5. Actor
  6. AnyRef
  7. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new ClusterSingletonManager(singletonProps: Props, terminationMessage: Any, settings: ClusterSingletonManagerSettings)

    Permalink

    singletonProps

    akka.actor.Props of the singleton actor instance.

    terminationMessage

    When handing over to a new oldest node this terminationMessage is sent to the singleton actor to tell it to finish its work, close resources, and stop. The hand-over to the new oldest node is completed when the singleton actor is terminated. Note that akka.actor.PoisonPill is a perfectly fine terminationMessage if you only need to stop the actor.

    settings

    see ClusterSingletonManagerSettings

Type Members

  1. type Event = actor.FSM.Event[Data]

    Permalink
    Definition Classes
    FSM
  2. type Receive = PartialFunction[Any, Unit]

    Permalink
    Definition Classes
    Actor
  3. type State = actor.FSM.State[ClusterSingletonManager.State, Data]

    Permalink
    Definition Classes
    FSM
  4. type StateFunction = PartialFunction[Event, State]

    Permalink
    Definition Classes
    FSM
  5. type StopEvent = actor.FSM.StopEvent[ClusterSingletonManager.State, Data]

    Permalink
    Definition Classes
    FSM
  6. type Timeout = Option[FiniteDuration]

    Permalink
    Definition Classes
    FSM
  7. final class TransformHelper extends AnyRef

    Permalink
    Definition Classes
    FSM
  8. type TransitionHandler = PartialFunction[(ClusterSingletonManager.State, ClusterSingletonManager.State), Unit]

    Permalink
    Definition Classes
    FSM

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. def +(other: String): String

    Permalink
    Implicit information
    This member is added by an implicit conversion from ClusterSingletonManager to any2stringadd[ClusterSingletonManager] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  4. val ->: actor.FSM.->.type

    Permalink
    Definition Classes
    FSM
  5. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  6. val Event: actor.FSM.Event.type

    Permalink
    Definition Classes
    FSM
  7. val StateTimeout: actor.FSM.StateTimeout.type

    Permalink
    Definition Classes
    FSM
  8. val StopEvent: actor.FSM.StopEvent.type

    Permalink
    Definition Classes
    FSM
  9. def addRemoved(node: UniqueAddress): Unit

    Permalink
  10. def aroundPostRestart(reason: Throwable): Unit

    Permalink
    Attributes
    protected[akka]
    Definition Classes
    Actor
    Annotations
    @InternalApi()
  11. def aroundPostStop(): Unit

    Permalink
    Attributes
    protected[akka]
    Definition Classes
    Actor
    Annotations
    @InternalApi()
  12. def aroundPreRestart(reason: Throwable, message: Option[Any]): Unit

    Permalink
    Attributes
    protected[akka]
    Definition Classes
    Actor
    Annotations
    @InternalApi()
  13. def aroundPreStart(): Unit

    Permalink
    Attributes
    protected[akka]
    Definition Classes
    Actor
    Annotations
    @InternalApi()
  14. def aroundReceive(receive: actor.Actor.Receive, msg: Any): Unit

    Permalink
    Attributes
    protected[akka]
    Definition Classes
    Actor
    Annotations
    @InternalApi()
  15. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  16. final def cancelTimer(name: String): Unit

    Permalink
    Definition Classes
    FSM
  17. def cleanupOverdueNotMemberAnyMore(): Unit

    Permalink
  18. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  19. val cluster: Cluster

    Permalink
  20. implicit val context: ActorContext

    Permalink
    Definition Classes
    Actor
  21. val coordShutdown: CoordinatedShutdown

    Permalink
  22. def ensuring(cond: (ClusterSingletonManager) ⇒ Boolean, msg: ⇒ Any): ClusterSingletonManager

    Permalink
    Implicit information
    This member is added by an implicit conversion from ClusterSingletonManager to Ensuring[ClusterSingletonManager] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  23. def ensuring(cond: (ClusterSingletonManager) ⇒ Boolean): ClusterSingletonManager

    Permalink
    Implicit information
    This member is added by an implicit conversion from ClusterSingletonManager to Ensuring[ClusterSingletonManager] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  24. def ensuring(cond: Boolean, msg: ⇒ Any): ClusterSingletonManager

    Permalink
    Implicit information
    This member is added by an implicit conversion from ClusterSingletonManager to Ensuring[ClusterSingletonManager] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  25. def ensuring(cond: Boolean): ClusterSingletonManager

    Permalink
    Implicit information
    This member is added by an implicit conversion from ClusterSingletonManager to Ensuring[ClusterSingletonManager] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  26. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  27. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  28. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  29. def formatted(fmtstr: String): String

    Permalink
    Implicit information
    This member is added by an implicit conversion from ClusterSingletonManager to StringFormat[ClusterSingletonManager] performed by method StringFormat in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @inline()
  30. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  31. def getNextOldestChanged(): Unit

    Permalink
  32. def gossip(msg: Any)(implicit sender: ActorRef): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Listeners
  33. final def goto(nextStateName: ClusterSingletonManager.State): State

    Permalink
    Definition Classes
    FSM
  34. def gotoHandingOver(singleton: Option[ActorRef], handOverTo: Option[ActorRef]): State

    Permalink
  35. def gotoOldest(): State

    Permalink
    Annotations
    @InternalStableApi()
  36. def gotoStopping(singleton: ActorRef): State

    Permalink
  37. def handOverDone(handOverTo: Option[ActorRef]): State

    Permalink
  38. def handleOldestChanged(singleton: Option[ActorRef], oldestOption: Option[UniqueAddress]): State

    Permalink
  39. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  40. final def initialize(): Unit

    Permalink
    Definition Classes
    FSM
  41. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  42. final def isTimerActive(name: String): Boolean

    Permalink
    Definition Classes
    FSM
  43. val lease: Option[Lease]

    Permalink
  44. val leaseRetryInterval: FiniteDuration

    Permalink
  45. def listenerManagement: actor.Actor.Receive

    Permalink
    Attributes
    protected
    Definition Classes
    Listeners
  46. val listeners: Set[ActorRef]

    Permalink
    Attributes
    protected
    Definition Classes
    Listeners
  47. def log: LoggingAdapter

    Permalink
    Definition Classes
    ActorLogging
  48. def logInfo(template: String, arg1: Any, arg2: Any, arg3: Any): Unit

    Permalink
  49. def logInfo(template: String, arg1: Any, arg2: Any): Unit

    Permalink
  50. def logInfo(template: String, arg1: Any): Unit

    Permalink
  51. def logInfo(message: String): Unit

    Permalink
  52. def logTermination(reason: Reason): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    FSM
  53. val maxHandOverRetries: Int

    Permalink
  54. val maxTakeOverRetries: Int

    Permalink
  55. val memberExitingProgress: Promise[Done]

    Permalink
  56. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  57. final def nextStateData: Data

    Permalink
    Definition Classes
    FSM
  58. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  59. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  60. var oldestChangedBuffer: ActorRef

    Permalink
  61. var oldestChangedReceived: Boolean

    Permalink
  62. final def onTermination(terminationHandler: PartialFunction[StopEvent, Unit]): Unit

    Permalink
    Definition Classes
    FSM
  63. final def onTransition(transitionHandler: TransitionHandler): Unit

    Permalink
    Definition Classes
    FSM
  64. def peer(at: Address): ActorSelection

    Permalink
  65. def postRestart(reason: Throwable): Unit

    Permalink
    Definition Classes
    Actor
    Annotations
    @throws( classOf[java.lang.Exception] )
  66. def postStop(): Unit

    Permalink
    Definition Classes
    ClusterSingletonManager → FSM → Actor
  67. def preRestart(reason: Throwable, message: Option[Any]): Unit

    Permalink
    Definition Classes
    Actor
    Annotations
    @throws( classOf[java.lang.Exception] )
  68. def preStart(): Unit

    Permalink
    Definition Classes
    ClusterSingletonManager → Actor
  69. def receive: Receive

    Permalink
    Definition Classes
    FSM → Actor
  70. val removalMargin: FiniteDuration

    Permalink
  71. var removed: Map[UniqueAddress, Deadline]

    Permalink
  72. def scheduleDelayedMemberRemoved(m: Member): Unit

    Permalink
  73. implicit final val self: ActorRef

    Permalink
    Definition Classes
    Actor
  74. var selfExited: Boolean

    Permalink
  75. def selfMemberExited(): Unit

    Permalink
  76. val selfUniqueAddressOption: Some[UniqueAddress]

    Permalink
  77. final def sender(): ActorRef

    Permalink
    Definition Classes
    Actor
  78. final def setStateTimeout(state: ClusterSingletonManager.State, timeout: Timeout): Unit

    Permalink
    Definition Classes
    FSM
  79. final def setTimer(name: String, msg: Any, timeout: FiniteDuration, repeat: Boolean): Unit

    Permalink
    Definition Classes
    FSM
  80. final def startWith(stateName: ClusterSingletonManager.State, stateData: Data, timeout: Timeout): Unit

    Permalink
    Definition Classes
    FSM
  81. final def stateData: Data

    Permalink
    Definition Classes
    FSM
  82. final def stateName: ClusterSingletonManager.State

    Permalink
    Definition Classes
    FSM
  83. final def stay(): State

    Permalink
    Definition Classes
    FSM
  84. final def stop(reason: Reason, stateData: Data): State

    Permalink
    Definition Classes
    FSM
  85. final def stop(reason: Reason): State

    Permalink
    Definition Classes
    FSM
  86. final def stop(): State

    Permalink
    Definition Classes
    FSM
  87. def supervisorStrategy: SupervisorStrategy

    Permalink
    Definition Classes
    Actor
  88. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  89. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  90. implicit final def total2pf(transitionHandler: (ClusterSingletonManager.State, ClusterSingletonManager.State) ⇒ Unit): TransitionHandler

    Permalink
    Definition Classes
    FSM
  91. final def transform(func: StateFunction): TransformHelper

    Permalink
    Definition Classes
    FSM
  92. def tryAcquireLease(): actor.FSM.State[ClusterSingletonManager.State, Data]

    Permalink
  93. def tryGotoOldest(): State

    Permalink
  94. def unhandled(message: Any): Unit

    Permalink
    Definition Classes
    Actor
  95. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  96. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  97. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  98. final def when(stateName: ClusterSingletonManager.State, stateTimeout: FiniteDuration)(stateFunction: StateFunction): Unit

    Permalink
    Definition Classes
    FSM
  99. final def whenUnhandled(stateFunction: StateFunction): Unit

    Permalink
    Definition Classes
    FSM
  100. def [B](y: B): (ClusterSingletonManager, B)

    Permalink
    Implicit information
    This member is added by an implicit conversion from ClusterSingletonManager to ArrowAssoc[ClusterSingletonManager] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc

Shadowed Implicit Value Members

  1. def ->[B](y: B): (ClusterSingletonManager, B)

    Permalink
    Implicit information
    This member is added by an implicit conversion from ClusterSingletonManager to ArrowAssoc[ClusterSingletonManager] performed by method ArrowAssoc in scala.Predef.
    Shadowing
    This implicitly inherited member is shadowed by one or more members in this class.
    To access this member you can use a type ascription:
    (clusterSingletonManager: ArrowAssoc[ClusterSingletonManager]).->(y)
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()

Inherited from ActorLogging

Inherited from Listeners

Inherited from Actor

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd from ClusterSingletonManager to any2stringadd[ClusterSingletonManager]

Inherited by implicit conversion StringFormat from ClusterSingletonManager to StringFormat[ClusterSingletonManager]

Inherited by implicit conversion Ensuring from ClusterSingletonManager to Ensuring[ClusterSingletonManager]

Inherited by implicit conversion ArrowAssoc from ClusterSingletonManager to ArrowAssoc[ClusterSingletonManager]

Ungrouped