使用 sbt 可以执行 ~run 以在源更改时重新编译和运行程序。但是,一旦创建了 ActorSystem,它就不再起作用了。
当系统关闭时它可以工作,但我不想关闭系统。
import akka.actor.ActorSystem
object Test {
def main(args: Array[String]) : Unit = {
val system = ActorSystem()
// if this line is removed, source code detection is disabled
system.shutdown()
}
}
有什么解决方法吗?
最佳答案
您必须记住,SBT ~run
本身不是热重载,它只是“一旦进程完成,请再次运行”。 Akka 的线程池是非守护进程的,这意味着在 ActorSystem 处于“事件状态”之前,程序不会终止,因此 SBT 的 ~run
不会再次触发。
相反,您可能想查看 sbt-revolver SBT 插件,可以满足您的需求(包括基于 Akka 的应用程序)。
关于scala - 使用 Akka 和 sbt 启用波浪号触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32871749/