gpt4 book ai didi

scala - 从 2.0 开始如何启动 Akka Actors?

转载 作者:行者123 更新时间:2023-12-03 21:21:35 24 4
gpt4 key购买 nike

我正在使用 Akka Actor 我正在尝试更新我的代码以使用最新的 2.0 里程碑。 API 发生了一些变化,例如 Actors 的创建现在通过一个叫做 ActorSystem 的东西来工作。 .

启动和停止 actor 也发生了变化——后者可通过 ActorSystems 获得。方法 .stop(..).shutdown() .但是我可以终生不知道如何开始它们......
文档很好,但似乎缺少一些要点。我觉得问起来有点愚蠢,但是你如何在你的 Akka 2.0 环境中启动 Actor ?如果我理解正确,当这个父对象启动时,有一个“父对象”的 Actor 就会开始——但是顶级 Actor 呢?

最佳答案

在 Akka 2.0 中,不需要 start() 方法,因为只要在 ActorSystem 的上下文中实例化 Actor 就会启动它们。 (或另一个 Actor )--但是您需要使用 ActorSystem 提供的方法之一实例化它们或 Actorcontext .

因此,例如,如果您有 Actor名为 MyClass 的子类,你可以这样开始:

val system = ActorSystem()
val myActor = system.actorOf(Props[MyActor])

或者,如果您的 Actor 采用构造函数参数:
val myActor = system.actorOf(Props(new MyActor("arg1"))

或者,如果你在另一个 Actor 的 body 里,
val myActor = context.actorOf(Props(new Actor("arg1"))

然后你的 Actor 可以立即收到消息,例如
myActor ! MyMessage

甚至您的顶级 Actor 也会立即启动,因为 2.0 中的所有 Actor 都自动处于监督层次结构中。一旦 actor 被 ActorSystem 实例化,它已准备好接收消息。

关于scala - 从 2.0 开始如何启动 Akka Actors?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8665802/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com