Gelecek tamamlansa bile Scala Uygulaması çıkmıyor

0

Soru

Konsoldaki içeriği tamamlamak ve yazdırmak için bir Gelecek bekliyorum. Her şey bittiğinde bile, ana uygulama çıkmıyor ve manuel olarak öldürmem gerekiyor.

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

Böyle results konsolda beklenen çekişme ile yazdırılır, ancak uygulama hala bitmez. Uygulamadan çıkmak için yapabileceğim bir şey var mı? Hala ana hattın beklediği bir şey mi var?

Kullanıyorum:

  • scala 2.12.10
  • akka 2.5.26
  • akkaHttp 10.1.11
akka akka-http concurrent.futures scala
2021-10-26 17:59:04
1

En iyi cevabı

3

Akka'yı kullandığınız için muhtemelen bir ActorSystem işlemin çalışmasını sağlayacak kaputun altında bir şekilde örneklendi.

Ya ona bir el atabilir ve onu arayabilirsin actorSystem.terminate() yöntem veya açık bir yöntem de kullanabilirsiniz. sys.exit(0) ana yönteminizin sonunda (0 istediğiniz çıkış kodu olmak).

Düzenleme: ayrıca şunları da sarmalısınız: Awaits içinde Try ve aradığınızdan emin olun sys.exit başarısızlıkların o durumda.

2021-10-26 18:23:16

Evet, ben yapmak zorunda bir implicit val system: ActorSystem = ActorSystem() ana çalıştıran nesnede.
Seb

Açık olarak değiştirme val system: ActorSystem = ActorSystem(). Sonra aradım system.terminate() (.kapatma kaldırılmış), ama bu hala Uygulama bitmiyor. Aramaktan başka bir yolu var mı sys.exit(0) kaba zorla göründüğü gibi ve yönelik olmalıdır?
Seb

Benim hatam, tüm işlevlerdeki tüm örtülü ActorSystems yakalamak ve işlerini bitirdikten sonra onları sonlandırmak zorunda kaldı. Aferin, bu doğru cevap.
Seb

Diğer dillerde

Bu sayfa diğer dillerde

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