【发布时间】:2020-05-12 08:24:57
【问题描述】:
我正在尝试在 Akka 中创建基本的 Actor,但我发现了两种不同的创建 Actor 的方法。一种方法是扩展akka.actor.Actor trait 并实现receive 方法,如下所示
import akka.actor.Actor
class HelloActor extends Actor {
override def receive: Receive = ???
}
另一种方法是使用对象并实现apply()方法,如下所示:
final case class GreetedMessage(whom: String, from: ActorRef[GreetMessage])
final case class GreetMessage(whom: String, replyTo: ActorRef[GreetedMessage])
object GreeterActor {
def apply(): Behavior[GreetMessage] = Behaviors.receive { (context, message) =>
context.log.info("Hello {}!", message.whom)
message.replyTo ! GreetedMessage(message.whom, context.self)
Behaviors.same
}
}
我想知道创建演员的首选方式以及可能的原因。
我假设扩展 Actor 特征是旧方法,因为 Akka 官方网站上没有提到它。请赐教。
【问题讨论】: