2015-09-30 21 views
3

随着SBT这是可以做到的〜运行重新编译和运行程序的源改变时。但是一旦创建ActorSystem,它就不再工作了。启用与阿卡波浪触发和SBT

当系统处于关闭它的工作原理,但我不希望关闭系统。

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() 
    } 
} 

有什么解决方法吗?

回答

4

你必须记住,SBTs ~run本身是而不是热重载,它只是“一旦过程完成,请重新运行它”。 Akka的线程池是非守护进程的,这意味着在ActorSystem处于“活动状态”之前程序不会终止,因此SBT的~run不会再次触发。

相反,你可能想看看进入sbt-revolver SBT插件,它可以做你要找的内容(包括基于阿卡应用程序)。

+0

感谢您的回答 –