gpt4 book ai didi

java - 如何使用指数退避实现 HttpRequestRetryHandler?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:05:47 24 4
gpt4 key购买 nike

我希望实现 HttpRequestRetryHandler对于 HttpClient,以防第一次请求失败。

我也想实现Exponential backoff用于后续重试。在数学上它可以实现为

E(c) = 1/2(2 power (c) -1)

enter image description here

但我现在正在努力在代码中实现它与 HttpRequestRetryHandler。

最佳答案

HttpRequestRetryHandler 不允许您进行那种级别的控制;如果你想做一些非常具体的事情,我建议你实现类似 Handler 的东西您可以在其中发布要延迟执行的 Runnable,例如使用 Handler.postDelayed() 根据您的公式增加延迟。

Handler mHandler = new Handler();
int mDelay = INITIAL_DELAY;

// try request
mHandler.postDelayed(mDelay, new Runnable() {
public void run() {
// try your request here; if it fails, then repost:
if (failed) {
mDelay *= 2; // or as per your formula
mHandler.postDelayed(mDelay, this);
}
else {
// success!
}
}
});

关于java - 如何使用指数退避实现 HttpRequestRetryHandler?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13809835/

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