gpt4 book ai didi

java - "elegant"BackOffPolicy的使用方法是什么

转载 作者:搜寻专家 更新时间:2023-11-01 02:50:09 24 4
gpt4 key购买 nike

我偶尔注意到我的 Drive SDK 调用会定期失败并出现 500 错误,重试请求通常会立即修复错误。查看 Google 文档,建议使用指数退避技术,我编写了自己的实现,效果很好,但是在调试时我碰巧遇到了 BackOffPolicy 接口(interface),经过更多调查,我什至发现了实现 ExponentialBackOffPolicy。

因此,与其自己管理,我认为最好删除我的实现,让 SDK 为我做这件事。可以(据我所知)使用构建的 HTTP 请求设置退避策略,因此在手动构建请求或使用批处理请求时非常容易使用,但是在使用核心 SDK 时我似乎无法找到最简单的注入(inject)位置,例如,如果我想为以下设置退避策略:

drive.files().get(id).execute();

我不能做这样的事情:

drive.files().get(id)
.setBackOffPolicy(new ExponentialBackOffPolicy())
.execute();

我需要这样做:

drive.files().get(id)
.buildHttpRequest()
.setBackOffPolicy(new ExponentialBackOffPolicy())
.execute();

但是,如果我这样做,那么我还需要重现 Drive.Files.Get 的执行方法的解析逻辑并将结果转换为 File 对象,这显然不是理想的方法。有没有一种更简单的方法可以“一般地”将其添加到请求中,或者是否有一种方法可以为所有请求设置默认的退避策略?

如果没有,也许这可以引入到 future 版本的 Drive SDK 中?

谢谢,大卫

最佳答案

Google Drive SDK 文档包含一个示例,展示了如何使用 Drive API 正确实现指数退避:

https://developers.google.com/drive/handle-errors

关于java - "elegant"BackOffPolicy的使用方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12774306/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com