私は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 に指示するにはどうすればよいですか?