Class TailChoppingGroup
- All Implemented Interfaces:
Serializable,Group,RouterConfig,scala.Equals,scala.Product
interval has passed, the same message is sent to the next routee. This process repeats
until either a response is received from some routee, the routees in the group are exhausted, or
the within duration has passed since the first send. If no routee sends
a response in time, a pekko.actor.Status.Failure wrapping a pekko.pattern.AskTimeoutException
is sent to the sender.
Refer to pekko.routing.TailChoppingRoutingLogic for comments regarding the goal of this
routing algorithm.
The configuration parameter trumps the constructor arguments. This means that
if you provide paths during instantiation they will be ignored if
the router is defined in the configuration file for the actor being used.
param: paths string representation of the actor paths of the routees, messages are
sent with pekko.actor.ActorSelection to these paths
param: within expecting at least one reply within this duration, otherwise
it will reply with pekko.pattern.AskTimeoutException in a pekko.actor.Status.Failure
param: interval duration after which the message will be sent to the next routee
param: routerDispatcher dispatcher to use for the router head actor, which handles router management messages
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionTailChoppingGroup(com.typesafe.config.Config config) TailChoppingGroup(Iterable<String> routeePaths, Duration within, Duration interval) Java APITailChoppingGroup(Iterable<String> routeePaths, scala.concurrent.duration.FiniteDuration within, scala.concurrent.duration.FiniteDuration interval) Java APITailChoppingGroup(scala.collection.immutable.Iterable<String> paths, scala.concurrent.duration.FiniteDuration within, scala.concurrent.duration.FiniteDuration interval, String routerDispatcher) -
Method Summary
Modifier and TypeMethodDescriptionstatic Stringstatic TailChoppingGroupapply(scala.collection.immutable.Iterable<String> paths, scala.concurrent.duration.FiniteDuration within, scala.concurrent.duration.FiniteDuration interval, String routerDispatcher) static Stringbooleancopy(scala.collection.immutable.Iterable<String> paths, scala.concurrent.duration.FiniteDuration within, scala.concurrent.duration.FiniteDuration interval, String routerDispatcher) scala.collection.immutable.Iterable<String>scala.concurrent.duration.FiniteDurationscala.concurrent.duration.FiniteDurationcreateRouter(ActorSystem system) Create the actual router, responsible for routing messages to routees.booleaninthashCode()scala.concurrent.duration.FiniteDurationinterval()scala.collection.immutable.Iterable<String>paths()scala.collection.immutable.Iterable<String>paths(ActorSystem system) intproductElement(int x$1) productElementName(int x$1) scala.collection.Iterator<Object>Dispatcher ID to use for running the “head” actor, which handles supervision, death watch and router management messagestoString()static scala.Option<scala.Tuple4<scala.collection.immutable.Iterable<String>,scala.concurrent.duration.FiniteDuration, scala.concurrent.duration.FiniteDuration, String>> unapply(TailChoppingGroup x$0) withDispatcher(String dispatcherId) Setting the dispatcher to be used for the router head actor, which handles router management messagesscala.concurrent.duration.FiniteDurationwithin()Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.pekko.routing.Group
createRouterActor, props, routeeForMethods inherited from interface scala.Product
productElementNamesMethods inherited from interface org.apache.pekko.routing.RouterConfig
isManagementMessage, routingLogicController, stopRouterWhenAllRouteesRemoved, verifyConfig, withFallback
-
Constructor Details
-
TailChoppingGroup
-
TailChoppingGroup
public TailChoppingGroup(com.typesafe.config.Config config) -
TailChoppingGroup
public TailChoppingGroup(Iterable<String> routeePaths, scala.concurrent.duration.FiniteDuration within, scala.concurrent.duration.FiniteDuration interval) Java API- Parameters:
routeePaths- string representation of the actor paths of the routees, messages are sent withpekko.actor.ActorSelectionto these pathswithin- expecting at least one reply within this duration, otherwise it will reply withpekko.pattern.AskTimeoutExceptionin apekko.actor.Status.Failureinterval- duration after which next routee will be picked
-
TailChoppingGroup
Java API- Parameters:
routeePaths- string representation of the actor paths of the routees, messages are sent withpekko.actor.ActorSelectionto these pathswithin- expecting at least one reply within this duration, otherwise it will reply withpekko.pattern.AskTimeoutExceptionin apekko.actor.Status.Failureinterval- duration after which next routee will be picked
-
-
Method Details
-
$lessinit$greater$default$4
-
apply
public static TailChoppingGroup apply(scala.collection.immutable.Iterable<String> paths, scala.concurrent.duration.FiniteDuration within, scala.concurrent.duration.FiniteDuration interval, String routerDispatcher) -
apply$default$4
-
unapply
public static scala.Option<scala.Tuple4<scala.collection.immutable.Iterable<String>,scala.concurrent.duration.FiniteDuration, unapplyscala.concurrent.duration.FiniteDuration, String>> (TailChoppingGroup x$0) -
paths
-
within
public scala.concurrent.duration.FiniteDuration within() -
interval
public scala.concurrent.duration.FiniteDuration interval() -
routerDispatcher
Description copied from interface:RouterConfigDispatcher ID to use for running the “head” actor, which handles supervision, death watch and router management messages- Specified by:
routerDispatcherin interfaceRouterConfig
-
createRouter
Description copied from interface:RouterConfigCreate the actual router, responsible for routing messages to routees.- Specified by:
createRouterin interfaceRouterConfig- Parameters:
system- the ActorSystem this router belongs to
-
paths
-
withDispatcher
Setting the dispatcher to be used for the router head actor, which handles router management messages -
copy
public TailChoppingGroup copy(scala.collection.immutable.Iterable<String> paths, scala.concurrent.duration.FiniteDuration within, scala.concurrent.duration.FiniteDuration interval, String routerDispatcher) -
copy$default$1
-
copy$default$2
public scala.concurrent.duration.FiniteDuration copy$default$2() -
copy$default$3
public scala.concurrent.duration.FiniteDuration copy$default$3() -
copy$default$4
-
productPrefix
- Specified by:
productPrefixin interfacescala.Product
-
productArity
public int productArity()- Specified by:
productArityin interfacescala.Product
-
productElement
- Specified by:
productElementin interfacescala.Product
-
productIterator
- Specified by:
productIteratorin interfacescala.Product
-
canEqual
- Specified by:
canEqualin interfacescala.Equals
-
productElementName
- Specified by:
productElementNamein interfacescala.Product
-
hashCode
public int hashCode() -
toString
-
equals
-