ZIO, Освободите ресурсы после выполнения
Я играю с 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
Итак, я создал метод финализатора, но, похоже, он не действует:
// ...
content <- Download.execute(args.resource).ensuring(http.disconnect()).provide(http)
// ...
class HttpClient {
// ...
def disconnect():UIO[Unit] = ZIO.effectTotal {
client.close()
system.terminate()
}
Как я могу указать ZIO вызвать метод финализатора, чтобы освободить мои ресурсы?