IResponse约束增加NeedRetry是否需要重试方法

This commit is contained in:
2025-05-07 16:32:20 +08:00
parent 741c9c8ea0
commit b335d7c2bb
3 changed files with 45 additions and 30 deletions

View File

@ -125,3 +125,26 @@ func (r *Response) HttpSuccess(reqCfg *define.Request, response *define.Response
}
return false
}
// NeedRetry 是否需要重试
func (r *Response) NeedRetry(reqCfg *define.Request, response *define.Response) bool {
if nil == reqCfg.RetryRule {
// 未配置重试规则
return false
}
if reqCfg.RetryRule.RetryCount <= 0 {
// 未配置重试次数
return false
}
for _, httpCode := range reqCfg.RetryRule.RetryHttpCodeList {
if response.HttpCode == int(httpCode) {
return true
}
}
for _, businessCode := range reqCfg.RetryRule.RetryBusinessCodeList {
if businessCode == response.Code {
return true
}
}
return false
}