我的用例非常简单-在两个对象之间交换很少(
现在我正从Scala Actor 迁移到Akka,但是我再也找不到那些轻量级的 Actor 了!
使用Akka,不仅需要为Actor创建创建ActorSystem/Props,而且还需要注意ActorSystem的生命周期。
是否有不需要复杂的ActorSystem生命周期管理的Akka Actor?
最佳答案
您可以在全局单例对象中创建自己的默认ActorSystem
,而不必手动停止它-它会在程序关闭时停止。
UPD
有关如何防止ActorSystem
保持JVM关闭的解决方案,请参阅answer的Roland 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 => ...
}
})