我的用例非常简单-在两个对象之间交换很少(
现在我正从Scala Actor 迁移到Akka,但是我再也找不到那些轻量级的 Actor 了!

使用Akka,不仅需要为Actor创建创建ActorSystem/Props,而且还需要注意ActorSystem的生命周期。

是否有不需要复杂的ActorSystem生命周期管理的Akka Actor?

最佳答案

您可以在全局单例对象中创建自己的默认ActorSystem,而不必手动停止它-它会在程序关闭时停止。

UPD

有关如何防止ActorSystem保持JVM关闭的解决方案,请参阅answerRoland Kuhn

object global {
  import com.typesafe.config.ConfigFactory
  // From answer by Roland Kuhn
  implicit lazy val actorSystem: ActorSystem =
    ActorSystem("default", ConfigFactory.parseString("akka.daemonic=on"))
}

您可以将package object用于此目的。

您还可以将ActorDSL用于轻量级actor创建语法:
import ActorDSL._
import global._

val a = actor( new Act {
  become {
      case msg => ...
  }
})

10-06 11:12