微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Scala 主类,期货未终止

如何解决Scala 主类,期货未终止

我有一个 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 举报,一经查实,本站将立刻删除。