小编Pin*_*ino的帖子

Akka TypedActor与编写我自己的静态接口到Actor类

我一直在使用Akka和Scala大约一个月,我有点担心用消息替换显式接口.考虑以下简单的Akka Actor:

case class DoMyHomework()
class Parent extends Actor {
  def receive = {
    case d: DoMyHomework => // do nothing
  }
}
Run Code Online (Sandbox Code Playgroud)

演员或非演员代码,发送此演员DoMyHomework消息,如下所示:

ActorRef parent = ...
parent.ask(DoMyHomework)
Run Code Online (Sandbox Code Playgroud)

不知道结果会是什么.答案的类型是什么?我能得到答案吗?我能得到例外吗?等等.

修复似乎是记录案例类...但如果其他一些actor也接收相同的案例类该怎么办.然后文档应该接收该消息应该在actor本身.

为了清理这一点,我想到了以下几点:

trait SomeoneSmarter {
  def wouldYouDoMyHomework: Future[Boolean] 
}
class Parent extends Actor with SomeoneSmarter {
  case class DoMyHomework()
  def wouldYouDoMyHomework = {
    (self ? DoMyHomework()).mapTo(Boolean)
  }
  def receive = {
    case d: DoMyHomework =>
      // TODO: If I'm busy schedule a false "No way" reply for a few seconds …
Run Code Online (Sandbox Code Playgroud)

scala actor akka typedactor

28
推荐指数
2
解决办法
3808
查看次数

标签 统计

actor ×1

akka ×1

scala ×1

typedactor ×1