对于 Web API 请求,应针对哪些错误重试


On which errors should curl retry for web API requests?

我正在实现一个从Web API检索信息的类。它将 XML 返回到 HTTPS GET 请求。我正在为请求使用 curl,并希望它在出现错误时重试以使其更健壮。

我目前正在重试(最多 3 次)所有卷曲错误和 HTTP 错误 500,但我想知道这是否是最好的方法。

那么,我应该为我的 API 请求重试哪些 curl 和 http 错误呢? 什么是最佳实践?

我会

说不要重试500错误。这是 API 方面的一些错误,不太可能改变(至少在几秒钟内)。

如果您确实想重试某些响应,请在超时时重试,即 408、504。可能是服务器收到的请求多于其处理能力,等待几秒钟重试可能是值得的。

我不同意 500 个错误。例如,Mailgun API 返回了间歇性的 421 和 500 错误,重试很可能会成功。由于您只尝试了几次并且错误应该很少见,因此当您遇到错误时,您不妨进行更多尝试。

我会重试这些HTTP错误:

票价:408、421、429、500、502、503、504 元

这里有一个很好的解释代码的含义