Go 中的可重试 HTTP 客户端
go-retryablehttp ==================== retryablehttp 包提供了一个熟悉的 HTTP 客户端接口,具有自动重试和指数级延迟。它是一个薄的封装,覆盖了标准的 net/http 客户端库,并暴露了几乎相同的公共 API。这使得 retryablehttp 非常容易添加到现有程序中。 retryablehttp 在特定条件下执行自动重试。主要是,如果客户端返回错误(连接错误等),或者收到 500 级别的响应代码(除了 501),则在等待一段时间后调用重试。否则,响应将返回,由调用者进行解释。
与 net/http 的主要区别在于,接受请求体(POST/PUT 等)的请求可以通过多种方式(有些效率高些,有些效率低些)提供请求体,允许在初始请求失败时“回滚”请求体,以便重新尝试完整的请求。详细信息请参阅 godoc。
返回的响应对象是一个 *http.Response,与您通常从 net/http 中获取的内容相同。如果请求失败了一次或多次,上述调用将阻塞并使用指数性的延迟重试。
[][travis] [][godocs] [travis]: http://travis-ci.org/hashicorp/go-retryablehttp [godocs]: http://godoc.org/github.com/hashicorp/go-retryablehttp
暂无开放 Issues,或尚未同步最近议题。