【问题标题】:Akka and getting an ActorRef of a Singleton objectAkka 并获取单例对象的 ActorRef
【发布时间】:2020-08-22 18:29:39
【问题描述】:

获取单例 Actor 的 ActorRef 的(最佳)方法是什么

这是我使用的代码:

   ActorRef instance = system.actorOf(Props.create(ContactServer.class, encoding, this));
    instance.tell(new AbstractMap.SimpleImmutableEntry<>(device, actionJson), ActorRef.noSender());

我遇到的问题是 Actor 永远不会关闭,所以我最终得到了很多演员:

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 的情况下获得对该 Actor 的引用?

【问题讨论】:

    标签: playframework akka


    【解决方案1】:

    要获得现有演员的参考,您可以:

    1. 通过具体路径查找演员,参见https://doc.akka.io/docs/akka/2.5/general/addressing.html#looking-up-actors-by-concrete-path
    2. 在 Actor 系统中初始化后,只需传递 ActorRef

    在我目前正在开发的系统中,第二种方法效果很好,因为它很简单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-26
      • 2014-11-15
      • 2021-10-27
      • 2017-04-02
      • 2015-11-30
      • 1970-01-01
      • 2011-05-14
      相关资源
      最近更新 更多