获取单示例执行元的ActorRef的(最佳)方法是什么
下面是我使用的代码:
ActorRef instance = system.actorOf(Props.create(ContactServer.class, encoding, this));
instance.tell(new AbstractMap.SimpleImmutableEntry<>(device, actionJson), ActorRef.noSender());
我的问题是,演员从来没有关闭,所以我结束了一大堆演员:
akka://application/user/$e
akka://application/user/$f
akka://application/user/$g
akka://application/user/$h
akka://application/user/$i
然而,虽然我可以用“getContext().stop(getSelf())"关闭Actor,但似乎将其作为Singleton使用更有意义,因为Actor中没有保存状态。但如何获得对该Actor的引用而不总是创建新的引用呢?
1条答案
按热度按时间vfwfrxfs1#
要获取现有执行元的引用,可以执行以下操作之一:
1.通过具体路径查找演员,请参见https://doc.akka.io/docs/akka/2.5/general/addressing.html#looking-up-actors-by-concrete-path。
1.在actor系统中初始化
ActorRef
后,只需传递它。在我目前正在研究的系统中,第二种方法工作得很好,因为它很简单。