2

私はZIOで遊んでいて、HTTP 経由でコンテンツを取得する単純なアプリケーションを作成しました。

for {
  options <- Options.parse(args)
     http = HttpClient(args)
  content <- Download.execute(args.resource).provide(http)
} yield ()

それは仕事をしますが、クライアントはPlay StandaloneWsClientによって支えられています。ドキュメントに記載されているように、それを閉じてアクター システムを終了したいと思います: https://github.com/playframework/play-ws#scala-1

だから私はファイナライザーメソッドを作成しましたが、それは効果がないようです:

// ...
content <- Download.execute(args.resource).ensuring(http.disconnect()).provide(http)

// ...
class HttpClient {
  // ...
  def disconnect():UIO[Unit] = ZIO.effectTotal { 
    client.close()
    system.terminate()
  }

リソースを解放するためにファイナライザ メソッドを呼び出すように ZIO に指示するにはどうすればよいですか?

4

0 に答える 0