我正在使用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 调用终结器方法来释放我的资源?