akka.routing
Class TailChoppingRoutingLogic
java.lang.Object
akka.routing.TailChoppingRoutingLogic
- All Implemented Interfaces:
- NoSerializationVerificationNeeded, RoutingLogic, java.io.Serializable, scala.Equals, scala.Product
public final class TailChoppingRoutingLogic
- extends java.lang.Object
- implements RoutingLogic, scala.Product, scala.Serializable
Sends the message to a first, random picked, routee,
then wait a specified interval
and then send to a second, random picked, and so on till one full cycle.
param: scheduler schedules sending messages to routees
param: within expecting at least one reply within this duration, otherwise
it will reply with AskTimeoutException
in a Status.Failure
param: interval duration after which next routee will be picked
param: context execution context used by scheduler
- See Also:
- Serialized Form
Constructor Summary |
TailChoppingRoutingLogic(Scheduler scheduler,
scala.concurrent.duration.FiniteDuration within,
scala.concurrent.duration.FiniteDuration interval,
scala.concurrent.ExecutionContext context)
|
Method Summary |
scala.concurrent.ExecutionContext |
context()
|
scala.concurrent.duration.FiniteDuration |
interval()
|
Scheduler |
scheduler()
|
Routee |
select(java.lang.Object message,
scala.collection.immutable.IndexedSeq<Routee> routees)
Pick the destination for a given message. |
scala.concurrent.duration.FiniteDuration |
within()
|
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 |
TailChoppingRoutingLogic
public TailChoppingRoutingLogic(Scheduler scheduler,
scala.concurrent.duration.FiniteDuration within,
scala.concurrent.duration.FiniteDuration interval,
scala.concurrent.ExecutionContext context)
scheduler
public Scheduler scheduler()
within
public scala.concurrent.duration.FiniteDuration within()
interval
public scala.concurrent.duration.FiniteDuration interval()
context
public scala.concurrent.ExecutionContext context()
select
public Routee select(java.lang.Object message,
scala.collection.immutable.IndexedSeq<Routee> routees)
- Description copied from interface:
RoutingLogic
- Pick the destination for a given message. Normally it picks one of the
passed
routees
, but in the end it is up to the implementation to
return whatever Routee
to use for sending a specific message.
When implemented from Java it can be good to know that
routees.apply(index)
can be used to get an element
from the IndexedSeq
.
- Specified by:
select
in interface RoutingLogic
- Parameters:
message
- (undocumented)routees
- (undocumented)
- Returns:
- (undocumented)