如何解决Scala 主类,期货未终止
object Job extends App {
def myProcedure() = {
sqlu"""CALL `dbname`.`update_history();"""
}
implicit val system: ActorSystem = ActorSystem()
implicit val mat: ActorMaterializer = ActorMaterializer()
implicit val ec = system.dispatcher
implicit val session: SlickSession = SlickSession.forConfig("my-MysqL")
val proc = session.db.run(myProcedure))
val terminatedF = proc.flatMap { rec =>
println("value of the procedure ::" + rec)
session.close()
system.terminate()
}
Await.result(terminatedF,Duration.Inf)
println("terminated :::")
}
我看到 rec
的值被打印出来,还有 terminated :::
,即最后一行也被打印出来。然而,程序并没有结束。我在这里遗漏了什么吗?
解决方法
这是用户定义线程的问题。
我在最后一个 Future 上使用了 Await.result
,然后做了 sys.exit(0)
。
同样在build.sbt
我用过
fork in run := true
这完美地工作
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。