我有两个课程 A , B 都延伸untypedActor我创建了另一个演员 C 到 通过使用 getContext()。watch(A / b的actorRef)观看这两个演员,当这两个演员A,B中的任何一个被终止时,我得到一个终止消息给C,我有在某个任务之后重新启动它,具体取决于哪个actor终止是A或B.
我怎么知道哪个演员被
等任何方法终止 if(terminatedActor instanceOf A){
// Do task on termination of A
// create A
}else if(terminatedActor instanceOf B ){
// Do task on termination of B
// create B
}
答案 0 :(得分:2)
由于ActorRef只是实现的代理,因此它不会为您提供所需的信息。
我管理它的方法是存储对我在管理程序中创建的actor的引用,该引用指示类型。有多种方法可以做到这一点,我用过的一种方法是将ActorRef存储在Map中。然后,您可以使用Terminated ActorRef从Map获取值,告诉您它的类型。或者只是在UntypedActor上创建内部属性来保存引用然后检查一个,直到找到匹配并重新创建它。
答案 1 :(得分:0)
我只需要监控2-3种类型的actor,所以我为每种类型实现了不同的监视器。