定义一个 Actor 类
要定义自己的Actor类,需要继承 Actor 并实现receive 方法.
receive 方法需要定义一系列 case 语句(类型为 PartialFunction[Any, Unit]) 来描述你的Actor能够处理哪些消息,以及如何进行处理。
如下例:
- import akka.actor.Actor
- import akka.actor.Props
- import akka.event.Logging
- class MyActor extends Actor {
- val log = Logging(context.system, this)
- def receive = {
- case "test" ⇒ log.info("received test")
- case _ ⇒ log.info("received unknown message")
- }
- }
需要提供一个接受的所有消息的模式匹配规则,如果你希望处理未知的消息,你需要象上例一样提供一个缺省的case分支。否则会有一个 akka.actor.UnhandledMessage(message, sender, recipient) 被发布到 Actor系统(ActorSystem)‘的 事件流(EventStream)中。
时间: 2024-10-13 01:15:39