From c3405fcee8a51e088f9d1d662b4bb15834a4801f Mon Sep 17 00:00:00 2001 From: gazebo Date: Thu, 30 May 2019 19:32:15 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E6=8C=89=E7=BE=8E=E5=9B=A2=E5=A4=96?= =?UTF-8?q?=E5=8D=96=E6=8A=80=E6=9C=AF=E6=94=AF=E6=8C=81=E7=9A=84=E8=AF=B4?= =?UTF-8?q?=E6=B3=95=EF=BC=8C=E6=8A=8ASYS=5FERROR(700)=E5=BD=93=E6=88=90?= =?UTF-8?q?=E5=8F=AF=E9=87=8D=E8=AF=95=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- platformapi/mtwmapi/mtwmapi.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/platformapi/mtwmapi/mtwmapi.go b/platformapi/mtwmapi/mtwmapi.go index 95bc0120..719c9737 100644 --- a/platformapi/mtwmapi/mtwmapi.go +++ b/platformapi/mtwmapi/mtwmapi.go @@ -40,6 +40,7 @@ const ( ) const ( + ErrCodeSysErr = 700 // 系统错误,按美团外卖技术支持的说法,可当成需重试的错误 ErrCodeAccessLimited = 711 // 接口调用过于频繁,触发流控,请降低调用频率 ErrCodeNoAppFood = 805 // 不存在此菜品 ) @@ -52,6 +53,13 @@ type API struct { config *platformapi.APIConfig } +var ( + canRetryCodes = map[int]int{ + ErrCodeSysErr: 1, + ErrCodeAccessLimited: 1, + } +) + func New(appID, secret, callbackURL string, config ...*platformapi.APIConfig) *API { curConfig := platformapi.DefAPIConfig if len(config) > 0 { @@ -143,7 +151,7 @@ func (a *API) AccessAPI2(cmd string, isGet bool, bizParams map[string]interface{ baseapi.SugarLogger.Debugf("mtwm AccessAPI failed, jsonResult1:%s", utils.Format4Output(jsonResult1, true)) errorInfo := errObj.(map[string]interface{}) newErr := utils.NewErrorIntCode(errorInfo["msg"].(string), int(utils.MustInterface2Int64(errorInfo["code"]))) - if newErr.IntCode() == ErrCodeAccessLimited { + if canRetryCodes[newErr.IntCode()] == 1 { return platformapi.ErrLevelExceedLimit, newErr } return platformapi.ErrLevelCodeIsNotOK, newErr