Packages

final class CoordinatedShutdown extends Extension

Source
CoordinatedShutdown.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. CoordinatedShutdown
  2. Extension
  3. AnyRef
  4. 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

Value Members

  1. def addCancellableJvmShutdownHook(hook: Runnable): Cancellable

    Java API: Add a JVM shutdown hook that will be run when the JVM process begins its shutdown sequence.

    Java API: Add a JVM shutdown hook that will be run when the JVM process begins its shutdown sequence. Added hooks may run in an order concurrently, but they are running before Akka internal shutdown hooks, e.g. those shutting down Artery.

    The returned Cancellable makes it possible to de-register the hook. For example on actor system shutdown to avoid leaking references to the actor system in tests.

    For shutdown hooks that does not have any requirements on running before the Akka shutdown hooks the standard library JVM shutdown hooks APIs are better suited.

  2. def addCancellableJvmShutdownHook[T](hook: ⇒ T): Cancellable

    Scala API: Add a JVM shutdown hook that will be run when the JVM process begins its shutdown sequence.

    Scala API: Add a JVM shutdown hook that will be run when the JVM process begins its shutdown sequence. Added hooks may run in any order concurrently, but they are running before Akka internal shutdown hooks, e.g. those shutting down Artery.

    The returned Cancellable makes it possible to de-register the hook. For example on actor system shutdown to avoid leaking references to the actor system in tests.

    For shutdown hooks that does not have any requirements on running before the Akka shutdown hooks the standard library JVM shutdown hooks APIs are better suited.

    Annotations
    @tailrec()
  3. def addJvmShutdownHook(hook: Runnable): Unit

    Java API: Add a JVM shutdown hook that will be run when the JVM process begins its shutdown sequence.

    Java API: Add a JVM shutdown hook that will be run when the JVM process begins its shutdown sequence. Added hooks may run in any order concurrently, but they are running before Akka internal shutdown hooks, e.g. those shutting down Artery.

  4. def addJvmShutdownHook[T](hook: ⇒ T): Unit

    Scala API: Add a JVM shutdown hook that will be run when the JVM process begins its shutdown sequence.

    Scala API: Add a JVM shutdown hook that will be run when the JVM process begins its shutdown sequence. Added hooks may run in any order concurrently, but they are running before Akka internal shutdown hooks, e.g. those shutting down Artery.

  5. def addTask(phase: String, taskName: String, task: Supplier[CompletionStage[Done]]): Unit

    Java API: Add a task to a phase.

    Java API: Add a task to a phase. It doesn't remove previously added tasks. Tasks added to the same phase are executed in parallel without any ordering assumptions. Next phase will not start until all tasks of previous phase have been completed.

    Tasks should typically be registered as early as possible after system startup. When running the coordinated shutdown tasks that have been registered will be performed but tasks that are added too late will not be run. It is possible to add a task to a later phase by a task in an earlier phase and it will be performed.

  6. def addTask(phase: String, taskName: String)(task: () ⇒ Future[Done]): Unit

    Scala API: Add a task to a phase.

    Scala API: Add a task to a phase. It doesn't remove previously added tasks. Tasks added to the same phase are executed in parallel without any ordering assumptions. Next phase will not start until all tasks of previous phase have been completed.

    Tasks should typically be registered as early as possible after system startup. When running the coordinated shutdown tasks that have been registered will be performed but tasks that are added too late will not be run. It is possible to add a task to a later phase by a task in an earlier phase and it will be performed.

    Annotations
    @tailrec()
  7. def getShutdownReason(): Optional[Reason]

    The Reason for the shutdown as passed to the run method.

    The Reason for the shutdown as passed to the run method. Optional.empty if the shutdown has not been started.

  8. def run(reason: Reason, fromPhase: Optional[String]): CompletionStage[Done]

    Java API: Run tasks of all phases including and after the given phase.

    Java API: Run tasks of all phases including and after the given phase. The returned CompletionStage is completed when all such tasks have been completed, or there is a failure when recovery is disabled.

    It's safe to call this method multiple times. It will only run the shutdown sequence once.

  9. def run(reason: Reason, fromPhase: Option[String]): Future[Done]

    Scala API: Run tasks of all phases including and after the given phase.

    Scala API: Run tasks of all phases including and after the given phase. The returned Future is completed when all such tasks have been completed, or there is a failure when recovery is disabled.

    It's safe to call this method multiple times. It will only run shutdown sequence once.

  10. def run(reason: Reason): Future[Done]

    Scala API: Run tasks of all phases.

    Scala API: Run tasks of all phases. The returned Future is completed when all tasks have been completed, or there is a failure when recovery is disabled.

    It's safe to call this method multiple times. It will only run the shutdown sequence once.

  11. def runAll(reason: Reason): CompletionStage[Done]

    Java API: Run tasks of all phases.

    Java API: Run tasks of all phases. The returned CompletionStage is completed when all tasks have been completed, or there is a failure when recovery is disabled.

    It's safe to call this method multiple times. It will only run the shutdown sequence once.

  12. def shutdownReason(): Option[Reason]

    The Reason for the shutdown as passed to the run method.

    The Reason for the shutdown as passed to the run method. None if the shutdown has not been started.

  13. def timeout(phase: String): FiniteDuration

    The configured timeout for a given phase.

    The configured timeout for a given phase. For example useful as timeout when actor ask requests is used as a task.

  14. def totalTimeout(): FiniteDuration

    Sum of timeouts of all phases that have some task.

Deprecated Value Members

  1. def run(fromPhase: Optional[String]): CompletionStage[Done]
    Annotations
    @deprecated
    Deprecated

    (Since version 2.5.8) Use the method with reason parameter instead

  2. def run(fromPhase: Option[String]): Future[Done]
    Annotations
    @deprecated
    Deprecated

    (Since version 2.5.8) Use the method with reason parameter instead

  3. def run(): Future[Done]
    Annotations
    @deprecated
    Deprecated

    (Since version 2.5.8) Use the method with reason parameter instead

  4. def runAll(): CompletionStage[Done]
    Annotations
    @deprecated
    Deprecated

    (Since version 2.5.8) Use the method with reason parameter instead