在编写断路器时,我正在对上游服务进行 api 调用,这将给出 5xx 或 4xx 错误。我只想考虑打开电路的 5xx 错误,而 4xx 应该正常处理。
resp, err := clients.DoHTTPCall(url, "POST", payload, ConnectionTimeOut, []string{config.Config.ContactConfig.AuthTokenHeaderNameInLoadRequest}, []string{authToken})
logging.Info("test", "%v", *resp)
if err != nil {
common.TrackStats(common.CurrencyToCountryMap[currencyCode], userType, LOAD_CONTACT_DATA_API, common.API_ERROR)
//logging.Error(logtag, "Error on loadContactLoadData request=%v err=%v contactLoadApiMsgId=%v", request, err, contactLoadApiMsgId)
return responses.NewError(responses.InternalServerError, err.Error())
}
return nil
}, circuitbreaker.WithFallback(contactLoadFallback()))```