默认���况下,Polly (.Net) 会重试哪些 HTTP 错误码?

13

我知道可以使用 Polly 指定需要重试的 HTTP 错误代码列表(例如 408、502、503 等),但如果没有指定任何代码,那么默认会重试哪些代码呢?

1个回答

13
Polly默认情况下会重试哪些[Http状态]代码的列表,如果没有指定的话?
Polly本身不包含任何内置的重试定义,您作为用户可以在定义策略时进行指定
使用HttpClientFactory的Polly(在.Net Core的StartUp中使用services.AddHttpClient(...).AddTransientHttpErrorPolicy(...)),根据Polly with HttpClientFactory文档,会重试以下项目:
- 网络故障(System.Net.Http.HttpRequestException) - HTTP 5XX状态码(服务器错误) - HTTP 408状态码(请求超时)

当你悬停在方法上时,这个也应该显示在智能感知中

通过Polly.Extensions.Http包提供的HandleTransientHttpError()方法还处理相同的异常和状态码集合


似乎 Polly 只抛出超时异常,而不是其他错误代码。 - Royi Namir
你能否请看一下这个 - Royi Namir
1
重试所有5xx错误太过宽泛,例如501未实现不应该重试。请考虑使用https://dev59.com/NVQK5IYBdhLWcg3wev6V#74627395列表,并从https://dev59.com/RLroa4cB1Zd3GeqPeyko问题中实现retryHttpStatusCodesList。 - Michael Freidgeim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接