I'm trying to use RoundRobinPool to create routees in router. But I'm not able to apply watch on routees because I don't know the paths of routees as in Pool Routing these are making automatically. Help me, how I can watch termination of routee in router actor.
Here is code of Router Class,
class Router extends Actor {
var router = context.actorOf(RoundRobinPool(3).props(Props[Worker]), "router")
def receive = {
case Work(message) =>
log.info("I'm Router, Sending Message({}), to Worker!", message)
router.tell(Work(message),sender)
case Terminated(actor) =>
log.info("Oh, Worker({}) is Stopped! Creating New Worker!", actor)
}
}`
```
Here is code of Worker Class,
```
`class Worker extends Actor {
def receive = {
case Work(message) =>
log.info("I've Received Message({}), From {}!", message, sender.path)
if (message == PoisonPill) {
log.info("Sending PoisonPill To Self! {}",self)
self ! PoisonPill
} else
sender ! "Done"
}
}`
```
Implementation,
```
`object ClassicRoutingUsingPoolDemo extends App {
val system = ActorSystem("system")
val poolRouter = system.actorOf(Props[Router], "poolRouter")
poolRouter.tell(Work(PoisonPill),poolRouter)
}`
```