From 5a76efe25468e445474cd2b7291abd5936d8bca1 Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 26 Feb 2019 10:55:24 +0800 Subject: [PATCH] - handle sometimes ebai return 400, can be recovered by retry. --- platformapi/platformapi.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/platformapi/platformapi.go b/platformapi/platformapi.go index 4bcaa593..d2a68678 100644 --- a/platformapi/platformapi.go +++ b/platformapi/platformapi.go @@ -123,7 +123,14 @@ func AccessPlatformAPIWithRetry(client *http.Client, handleRequest func() *http. baseapi.SugarLogger.Infof("AccessPlatformAPIWithRetry:%s access api too slow, url:%v, request:%v, usedMilliSecond:%d", trackID, request.URL, getClonedData(request.URL, savedBuf), usedMilliSecond) } defer response.Body.Close() - if response.StatusCode != 200 { + if response.StatusCode != http.StatusOK { + // todo, hardcode,暂时在这里处理饿百的访问异常 + if response.StatusCode == http.StatusBadRequest && request.URL.Hostname() == "api-be.ele.me" { + recoverableErrorRetryCount++ + if recoverableErrorRetryCount <= config.MaxRecoverableRetryCount { + continue + } + } if bodyData, err := ioutil.ReadAll(response.Body); err == nil { baseapi.SugarLogger.Infof("AccessPlatformAPIWithRetry:%s HTTP code is:%d, url:%v, request:%v, response:%s", trackID, response.StatusCode, request.URL, getClonedData(request.URL, savedBuf), string(bodyData)) } else {