One difference with cluster aware router (dynamic router) is that will not 
terminate when all children have terminated. In docs:
In the event that all children of a pool router have terminated the router will 
terminate itself unless it is a dynamic router, e.g. using a resizer.

/Patrik

> 17 jul 2014 kl. 14:33 skrev Konrad Malawski <kt...@typesafe.com>:
> 
> Hi Sean,
> I tried to replicate your problem, but seems to work as expected in my sample 
> app.
> 
> I've tried with an app like this: 
> https://gist.github.com/ktoso/c7382f3c88159f352b75
> Which you can paste in the akka-sample-cluster-scala activator template.
> 
> I'd love to help out, but so far couldn't replicate the problem - would be 
> cool if you could prepare a minimised example (can be based on my gist 
> maybe?) to show the problem.
> In general you're right to expect that death watch should "just work"™ with 
> remote actors.
> 
> 
> 
>> On Mon, Jul 14, 2014 at 6:07 AM, Sean Policarpio <kdra...@gmail.com> wrote:
>> The documentation at 
>> http://doc.akka.io/docs/akka/snapshot/scala/cluster-usage.html doesn't state 
>> that the PoisonPill performs differently than the behaviour listed here, so 
>> I assumed if I used a Broadcast message like below:
>> 
>> ...
>>   def vectorizeUserContent(streamer : ActorRef, libraryId : Long, senderNode 
>> : ActorRef) = {
>> 
>>     val userVectorizationReducers =
>>       context.actorOf(FromConfig.props(Props[ UserVectorizationReducer ]), 
>> "userVectorizationReducer")
>> 
>>     context.actorOf(Props(new Actor {
>> 
>>       override def preStart() {
>>         context.watch(userVectorizationReducers)
>>         streamer ! StartStream(libraryId)
>>       }
>> 
>>       override def receive = {
>>         case dto : RawUserContentDto => userVectorizationReducers ! 
>> ConsistentHashableEnvelope(dto, dto.userId)
>>         case EndOfStream() => {
>>           userVectorizationReducers ! 
>> Broadcast(ReturnUserVectors(senderNode))
>>           userVectorizationReducers ! Broadcast(PoisonPill)
>>         }
>>         case Terminated(userVectorizationReducers) => {
>>           senderNode ! VectorizationCompleted()
>>           self ! PoisonPill
>>         }
>>       }
>> 
>>     }), "userContentVectorizerDirector")
>>   }
>> ...
>> 
>> where userVectorizationReducers is a remotely deployed pool of routees, the 
>> Terminated message would be retrieved due to the watch made in preStart(). 
>> Unfortunately, the broadcasted PoisonPill does not trigger the expected 
>> Terminated message I'm waiting for. If I however replace the broadcast in my 
>> 'EndOfStream()' case with userVectorizationReducers ! PoisonPill, then the 
>> Terminated message is returned. In both cases, all routees are terminated 
>> individually (evident through some logging in the postStop() method of the 
>> UserVectorizationReducer actor). I'm assuming the PoisonPill is actually 
>> being routed to the routees where they can be gracefully shutdown after all 
>> other messages have been processed, but I could be wrong.
>> 
>> Can I get clarification if this is in fact true and it is the recommended 
>> way to shutdown a pool of cluster routees?
>> 
>> Cheers,
>> Sean
>> -- 
>> >>>>>>>>>> Read the docs: http://akka.io/docs/
>> >>>>>>>>>> Check the FAQ: 
>> >>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>> >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "Akka User List" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to akka-user+unsubscr...@googlegroups.com.
>> To post to this group, send email to akka-user@googlegroups.com.
>> Visit this group at http://groups.google.com/group/akka-user.
>> For more options, visit https://groups.google.com/d/optout.
> 
> 
> 
> -- 
> Cheers,
> Konrad 'ktoso' Malawski
> hAkker @ Typesafe
> 
> 
> -- 
> >>>>>>>>>> Read the docs: http://akka.io/docs/
> >>>>>>>>>> Check the FAQ: 
> >>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
> >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
> --- 
> You received this message because you are subscribed to the Google Groups 
> "Akka User List" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to akka-user+unsubscr...@googlegroups.com.
> To post to this group, send email to akka-user@googlegroups.com.
> Visit this group at http://groups.google.com/group/akka-user.
> For more options, visit https://groups.google.com/d/optout.

-- 
>>>>>>>>>>      Read the docs: http://akka.io/docs/
>>>>>>>>>>      Check the FAQ: 
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>>      Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to akka-user+unsubscr...@googlegroups.com.
To post to this group, send email to akka-user@googlegroups.com.
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to