akka.actor
Class OneForOneStrategy

java.lang.Object
  extended by akka.actor.SupervisorStrategy
      extended by akka.actor.OneForOneStrategy
All Implemented Interfaces:
java.io.Serializable, scala.Equals, scala.Product
Direct Known Subclasses:
Registry.RegistryLogStrategy

public class OneForOneStrategy
extends SupervisorStrategy
implements scala.Product, scala.Serializable

Applies the fault handling Directive (Resume, Restart, Stop) specified in the Decider to the child actor that failed, as opposed to 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 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 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:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class akka.actor.SupervisorStrategy
SupervisorStrategy.Directive, SupervisorStrategy.Escalate$, SupervisorStrategy.Restart$, SupervisorStrategy.Resume$, SupervisorStrategy.Stop$
 
Constructor Summary
OneForOneStrategy(boolean loggingEnabled, scala.PartialFunction<java.lang.Throwable,SupervisorStrategy.Directive> decider)
          Java API: compatible with lambda expressions This is an EXPERIMENTAL feature and is subject to change until it has received more real world testing.
OneForOneStrategy(int maxNrOfRetries, scala.concurrent.duration.Duration withinTimeRange, boolean loggingEnabled, scala.PartialFunction<java.lang.Throwable,SupervisorStrategy.Directive> decider)
           
OneForOneStrategy(int maxNrOfRetries, scala.concurrent.duration.Duration withinTimeRange, Function<java.lang.Throwable,SupervisorStrategy.Directive> decider)
          Java API
OneForOneStrategy(int maxNrOfRetries, scala.concurrent.duration.Duration withinTimeRange, Function<java.lang.Throwable,SupervisorStrategy.Directive> decider, boolean loggingEnabled)
          Java API
OneForOneStrategy(int maxNrOfRetries, scala.concurrent.duration.Duration withinTimeRange, java.lang.Iterable<java.lang.Class<? extends java.lang.Throwable>> trapExit)
          Java API
OneForOneStrategy(int maxNrOfRetries, scala.concurrent.duration.Duration withinTimeRange, scala.PartialFunction<java.lang.Throwable,SupervisorStrategy.Directive> decider)
          Java API: compatible with lambda expressions This is an EXPERIMENTAL feature and is subject to change until it has received more real world testing.
OneForOneStrategy(scala.PartialFunction<java.lang.Throwable,SupervisorStrategy.Directive> decider)
          Java API: compatible with lambda expressions This is an EXPERIMENTAL feature and is subject to change until it has received more real world testing.
 
Method Summary
 scala.PartialFunction<java.lang.Throwable,SupervisorStrategy.Directive> decider()
          Returns the Decider that is associated with this SupervisorStrategy.
 void handleChildTerminated(ActorContext context, ActorRef child, scala.collection.Iterable<ActorRef> children)
          This method is called after the child has been removed from the set of children.
 boolean loggingEnabled()
          Logging of actor failures is done when this is true.
 int maxNrOfRetries()
           
 void processFailure(ActorContext context, boolean restart, ActorRef child, java.lang.Throwable cause, ChildRestartStats stats, scala.collection.Iterable<ChildRestartStats> children)
          This method is called to act on the failure of a child: restart if the flag is true, stop otherwise.
 scala.concurrent.duration.Duration withinTimeRange()
           
 
Methods inherited from class akka.actor.SupervisorStrategy
defaultDecider, defaultStrategy, escalate, escalateDefault, handleFailure, logFailure, makeDecider, makeDecider, makeDecider, makeDecider, maxNrOfRetriesOption, restart, restartChild, resume, resumeChild, seqThrowable2Decider, sort, stop, stoppingStrategy, withinTimeRangeOption
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface scala.Product
productArity, productElement, productIterator, productPrefix
 
Methods inherited from interface scala.Equals
canEqual, equals
 

Constructor Detail

OneForOneStrategy

public OneForOneStrategy(int maxNrOfRetries,
                         scala.concurrent.duration.Duration withinTimeRange,
                         boolean loggingEnabled,
                         scala.PartialFunction<java.lang.Throwable,SupervisorStrategy.Directive> decider)

OneForOneStrategy

public OneForOneStrategy(int maxNrOfRetries,
                         scala.concurrent.duration.Duration withinTimeRange,
                         Function<java.lang.Throwable,SupervisorStrategy.Directive> decider,
                         boolean loggingEnabled)
Java API

Parameters:
maxNrOfRetries - (undocumented)
withinTimeRange - (undocumented)
decider - (undocumented)
loggingEnabled - (undocumented)

OneForOneStrategy

public OneForOneStrategy(int maxNrOfRetries,
                         scala.concurrent.duration.Duration withinTimeRange,
                         Function<java.lang.Throwable,SupervisorStrategy.Directive> decider)
Java API

Parameters:
maxNrOfRetries - (undocumented)
withinTimeRange - (undocumented)
decider - (undocumented)

OneForOneStrategy

public OneForOneStrategy(int maxNrOfRetries,
                         scala.concurrent.duration.Duration withinTimeRange,
                         java.lang.Iterable<java.lang.Class<? extends java.lang.Throwable>> trapExit)
Java API

Parameters:
maxNrOfRetries - (undocumented)
withinTimeRange - (undocumented)
trapExit - (undocumented)

OneForOneStrategy

public OneForOneStrategy(int maxNrOfRetries,
                         scala.concurrent.duration.Duration withinTimeRange,
                         scala.PartialFunction<java.lang.Throwable,SupervisorStrategy.Directive> decider)
Java API: compatible with lambda expressions This is an EXPERIMENTAL feature and is subject to change until it has received more real world testing.

Parameters:
maxNrOfRetries - (undocumented)
withinTimeRange - (undocumented)
decider - (undocumented)

OneForOneStrategy

public OneForOneStrategy(boolean loggingEnabled,
                         scala.PartialFunction<java.lang.Throwable,SupervisorStrategy.Directive> decider)
Java API: compatible with lambda expressions This is an EXPERIMENTAL feature and is subject to change until it has received more real world testing.

Parameters:
loggingEnabled - (undocumented)
decider - (undocumented)

OneForOneStrategy

public OneForOneStrategy(scala.PartialFunction<java.lang.Throwable,SupervisorStrategy.Directive> decider)
Java API: compatible with lambda expressions This is an EXPERIMENTAL feature and is subject to change until it has received more real world testing.

Parameters:
decider - (undocumented)
Method Detail

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
Returns:
(undocumented)

decider

public scala.PartialFunction<java.lang.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
Returns:
(undocumented)

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
Parameters:
context - (undocumented)
child - (undocumented)
children - (undocumented)

processFailure

public void processFailure(ActorContext context,
                           boolean restart,
                           ActorRef child,
                           java.lang.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
Parameters:
context - (undocumented)
restart - (undocumented)
child - (undocumented)
cause - (undocumented)
stats - (undocumented)
children - (undocumented)