斯卡拉程序不会退出,即使将来完成

0

的问题

我在等待今后完成和打印内容。 甚至当一切完成之后,主要的应用程序不出与我有杀手工。

def main(args: Array[String]): Unit {
    val req = HttpRequest(GET, myURL)
    val res = Http().singleRequest(req)
    val resultsFutures = Future {
        val resultString = Await.result(HttpRequests.unpackResponse(res), Duration.Inf)
        JsonMethods.parse(resultString).extract[List[Results]]
    }
    val results = Await.result(resultsFutures, Duration.Inf)
    println(results)
}

所以 results 得到印控制台上与预期的争辩,但应用仍然没有结束。 是不是有什么我可以做到的退出应用程序? 有些东西仍在运行,主要是在等待吗?

我是使用:

  • 斯卡拉2.12.10
  • akka2.5.26
  • akkaHttp10.1.11
akka akka-http concurrent.futures scala
2021-10-26 17:59:04
1

最好的答案

3

因为你使用Akka,你可能有一个 ActorSystem 实例以某种方式发动机罩下,将保持该进程的运行。

要么你都能够得到一个手它并呼它的 actorSystem.terminate() 方法,或者你也可以使用明确 sys.exit(0) 在结束你的主要方法(0 正在退出的代码你想要)。

编辑:你也应该包裹 Awaits在 Try 并确保到呼叫 sys.exit 在生故障的情况下。

2021-10-26 18:23:16

是的,我有一个 implicit val system: ActorSystem = ActorSystem() 在目运行主要的。
Seb

改变它明确 val system: ActorSystem = ActorSystem(). 然后叫我 system.terminate() (.关闭已经过时),但这仍不结束的应用程序。 是否有另一种方式比打电话 sys.exit(0) 因为它似乎蛮迫和应该有一个旨在种方式?
Seb

我的错误,必须抓住所有隐含的ActorSystems在所有职能和终止他们之后他们完成他们的工作。 做得好,这是正确的答案。
Seb

其他语言

此页面有其他语言版本

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................