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 вызвать метод финализатора, чтобы освободить мои ресурсы?

0 ответов

Другие вопросы по тегам