Browse Source

retry logic

yixiong.jxy 7 years ago
parent
commit
2e46498f6c
1 changed files with 5 additions and 5 deletions
  1. 5 5
      sdk/client.go

+ 5 - 5
sdk/client.go

@@ -247,14 +247,14 @@ func (client *Client) DoActionWithSigner(request requests.AcsRequest, response r
 	for retryTimes := 0; retryTimes <= client.config.MaxRetryTime; retryTimes++ {
 		httpResponse, err = client.httpClient.Do(httpRequest)
 
-		var timeout bool
+		//var timeout bool
 		// receive error
 		if err != nil {
 			if !client.config.AutoRetry {
 				return
-			} else if timeout = isTimeout(err); !timeout {
-				// if not timeout error, return
-				return
+			//} else if timeout = isTimeout(err); !timeout {
+			//	// if not timeout error, return
+			//	return
 			} else if retryTimes >= client.config.MaxRetryTime {
 				// timeout but reached the max retry times, return
 				timeoutErrorMsg := fmt.Sprintf(errors.TimeoutErrorMessage, strconv.Itoa(retryTimes+1), strconv.Itoa(retryTimes+1))
@@ -263,7 +263,7 @@ func (client *Client) DoActionWithSigner(request requests.AcsRequest, response r
 			}
 		}
 		//  if status code >= 500 or timeout, will trigger retry
-		if client.config.AutoRetry && (timeout || isServerError(httpResponse)) {
+		if client.config.AutoRetry && (err != nil || isServerError(httpResponse)) {
 			// rewrite signatureNonce and signature
 			httpRequest, err = buildHttpRequest(request, finalSigner, regionId)
 			if err != nil {