Class OneForOneStrategy

java.lang.Object
org.apache.pekko.actor.SupervisorStrategy
org.apache.pekko.actor.OneForOneStrategy
All Implemented Interfaces:
Serializable, scala.Equals, scala.Product
Direct Known Subclasses:
ClusterMetricsStrategy

public class OneForOneStrategy extends SupervisorStrategy implements scala.Product, Serializable
Applies the fault handling Directive (Resume, Restart, Stop) specified in the Decider to the child actor that failed, as opposed to pekko.actor.AllForOneStrategy that applies it to all children.

param: maxNrOfRetries the number of times a child actor is allowed to be restarted, negative value means no limit if the duration is infinite. If the limit is exceeded the child actor is stopped param: withinTimeRange duration of the time window for maxNrOfRetries, Duration.Inf means no window param: decider mapping from Throwable to pekko.actor.SupervisorStrategy.Directive, you can also use a Seq of Throwables which maps the given Throwables to restarts, otherwise escalates. param: loggingEnabled the strategy logs the failure if this is enabled (true), by default it is enabled

See Also:
  • Constructor Details

  • Method Details

    • $lessinit$greater$default$1

      public static int $lessinit$greater$default$1()
    • $lessinit$greater$default$2

      public static scala.concurrent.duration.Duration $lessinit$greater$default$2()
    • $lessinit$greater$default$3

      public static boolean $lessinit$greater$default$3()
    • apply

      public static OneForOneStrategy apply(int maxNrOfRetries, scala.concurrent.duration.Duration withinTimeRange, boolean loggingEnabled, scala.PartialFunction<Throwable,SupervisorStrategy.Directive> decider)
    • apply$default$1

      public static int apply$default$1()
    • apply$default$2

      public static scala.concurrent.duration.Duration apply$default$2()
    • apply$default$3

      public static boolean apply$default$3()
    • unapply

      public static scala.Option<scala.Tuple3<Object,scala.concurrent.duration.Duration,Object>> unapply(OneForOneStrategy x$0)
    • maxNrOfRetries

      public int maxNrOfRetries()
    • withinTimeRange

      public scala.concurrent.duration.Duration withinTimeRange()
    • loggingEnabled

      public boolean loggingEnabled()
      Description copied from class: SupervisorStrategy
      Logging of actor failures is done when this is true.
      Overrides:
      loggingEnabled in class SupervisorStrategy
    • decider

      public scala.PartialFunction<Throwable,SupervisorStrategy.Directive> decider()
      Description copied from class: SupervisorStrategy
      Returns the Decider that is associated with this SupervisorStrategy. The Decider is invoked by the default implementation of handleFailure to obtain the Directive to be applied.
      Specified by:
      decider in class SupervisorStrategy
    • withMaxNrOfRetries

      public OneForOneStrategy withMaxNrOfRetries(int maxNrOfRetries)
    • handleChildTerminated

      public void handleChildTerminated(ActorContext context, ActorRef child, scala.collection.Iterable<ActorRef> children)
      Description copied from class: SupervisorStrategy
      This method is called after the child has been removed from the set of children. It does not need to do anything special. Exceptions thrown from this method do NOT make the actor fail if this happens during termination.
      Specified by:
      handleChildTerminated in class SupervisorStrategy
    • processFailure

      public void processFailure(ActorContext context, boolean restart, ActorRef child, Throwable cause, ChildRestartStats stats, scala.collection.Iterable<ChildRestartStats> children)
      Description copied from class: SupervisorStrategy
      This method is called to act on the failure of a child: restart if the flag is true, stop otherwise.
      Specified by:
      processFailure in class SupervisorStrategy
    • copy

      public OneForOneStrategy copy(int maxNrOfRetries, scala.concurrent.duration.Duration withinTimeRange, boolean loggingEnabled, scala.PartialFunction<Throwable,SupervisorStrategy.Directive> decider)
    • copy$default$1

      public int copy$default$1()
    • copy$default$2

      public scala.concurrent.duration.Duration copy$default$2()
    • copy$default$3

      public boolean copy$default$3()
    • productPrefix

      public String productPrefix()
      Specified by:
      productPrefix in interface scala.Product
    • productArity

      public int productArity()
      Specified by:
      productArity in interface scala.Product
    • productElement

      public Object productElement(int x$1)
      Specified by:
      productElement in interface scala.Product
    • productIterator

      public scala.collection.Iterator<Object> productIterator()
      Specified by:
      productIterator in interface scala.Product
    • canEqual

      public boolean canEqual(Object x$1)
      Specified by:
      canEqual in interface scala.Equals
    • productElementName

      public String productElementName(int x$1)
      Specified by:
      productElementName in interface scala.Product
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object x$1)
      Specified by:
      equals in interface scala.Equals
      Overrides:
      equals in class Object