akka.routing
Class TailChoppingGroup

java.lang.Object
  extended by akka.routing.TailChoppingGroup
All Implemented Interfaces:
Group, RouterConfig, java.io.Serializable, scala.Equals, scala.Product

public final class TailChoppingGroup
extends java.lang.Object
implements Group, scala.Product, scala.Serializable

A router group that 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..

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 ActorSelection to these paths

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: routerDispatcher dispatcher to use for the router head actor, which handles router management messages

See Also:
Serialized Form

Constructor Summary
TailChoppingGroup(com.typesafe.config.Config config)
           
TailChoppingGroup(java.lang.Iterable<java.lang.String> routeePaths, scala.concurrent.duration.FiniteDuration within, scala.concurrent.duration.FiniteDuration interval)
          Java API
TailChoppingGroup(scala.collection.immutable.Iterable<java.lang.String> paths, scala.concurrent.duration.FiniteDuration within, scala.concurrent.duration.FiniteDuration interval, java.lang.String routerDispatcher)
           
 
Method Summary
 Router createRouter(ActorSystem system)
          Create the actual router, responsible for routing messages to routees.
 scala.concurrent.duration.FiniteDuration interval()
           
 scala.collection.immutable.Iterable<java.lang.String> paths()
           
 java.lang.String routerDispatcher()
          Dispatcher ID to use for running the &ldquo;head&rdquo; actor, which handles supervision, death watch and router management messages
 TailChoppingGroup withDispatcher(java.lang.String dispatcherId)
          Setting the dispatcher to be used for the router head actor, which handles router management messages
 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 akka.routing.Group
createRouterActor, props, routeeFor
 
Methods inherited from interface akka.routing.RouterConfig
isManagementMessage, routingLogicController, stopRouterWhenAllRouteesRemoved, verifyConfig, withFallback
 
Methods inherited from interface scala.Product
productArity, productElement, productIterator, productPrefix
 
Methods inherited from interface scala.Equals
canEqual, equals
 

Constructor Detail

TailChoppingGroup

public TailChoppingGroup(scala.collection.immutable.Iterable<java.lang.String> paths,
                         scala.concurrent.duration.FiniteDuration within,
                         scala.concurrent.duration.FiniteDuration interval,
                         java.lang.String routerDispatcher)

TailChoppingGroup

public TailChoppingGroup(com.typesafe.config.Config config)

TailChoppingGroup

public TailChoppingGroup(java.lang.Iterable<java.lang.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 with ActorSelection to these paths
within - expecting at least one reply within this duration, otherwise it will reply with AskTimeoutException in a Status.Failure
interval - duration after which next routee will be picked
Method Detail

paths

public scala.collection.immutable.Iterable<java.lang.String> paths()
Specified by:
paths in interface Group

within

public scala.concurrent.duration.FiniteDuration within()

interval

public scala.concurrent.duration.FiniteDuration interval()

routerDispatcher

public java.lang.String routerDispatcher()
Description copied from interface: RouterConfig
Dispatcher ID to use for running the &ldquo;head&rdquo; actor, which handles supervision, death watch and router management messages

Specified by:
routerDispatcher in interface RouterConfig
Returns:
(undocumented)

createRouter

public Router createRouter(ActorSystem system)
Description copied from interface: RouterConfig
Create the actual router, responsible for routing messages to routees.

Specified by:
createRouter in interface RouterConfig
Parameters:
system - the ActorSystem this router belongs to
Returns:
(undocumented)

withDispatcher

public TailChoppingGroup withDispatcher(java.lang.String dispatcherId)
Setting the dispatcher to be used for the router head actor, which handles router management messages

Parameters:
dispatcherId - (undocumented)
Returns:
(undocumented)