Akka和获取Singleton对象的ActorRef

hmtdttj4  于 2022-11-06  发布在  其他
关注(0)|答案(1)|浏览(189)

获取单示例执行元的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的引用而不总是创建新的引用呢?

vfwfrxfs

vfwfrxfs1#

要获取现有执行元的引用,可以执行以下操作之一:
1.通过具体路径查找演员,请参见https://doc.akka.io/docs/akka/2.5/general/addressing.html#looking-up-actors-by-concrete-path。
1.在actor系统中初始化ActorRef后,只需传递它。
在我目前正在研究的系统中,第二种方法工作得很好,因为它很简单。

相关问题