Skip to content

Commit 66d5b28

Browse files
committed
fix retry
1 parent 8c9922a commit 66d5b28

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

qcloud_cos/cos_client.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -209,8 +209,8 @@ def send_request(self, method, url, bucket, timeout=30, **kwargs):
209209
kwargs['headers'] = format_values(kwargs['headers'])
210210
if 'data' in kwargs:
211211
kwargs['data'] = to_bytes(kwargs['data'])
212-
try:
213-
for j in range(self._retry):
212+
for j in range(self._retry + 1):
213+
try:
214214
if method == 'POST':
215215
res = self._session.post(url, timeout=timeout, **kwargs)
216216
elif method == 'GET':
@@ -223,9 +223,11 @@ def send_request(self, method, url, bucket, timeout=30, **kwargs):
223223
res = self._session.head(url, timeout=timeout, **kwargs)
224224
if res.status_code < 400: # 2xx和3xx都认为是成功的
225225
return res
226-
except Exception as e: # 捕获requests抛出的如timeout等客户端错误,转化为客户端错误
227-
logger.exception('url:%s, exception:%s' % (url, str(e)))
228-
raise CosClientError(str(e))
226+
except Exception as e: # 捕获requests抛出的如timeout等客户端错误,转化为客户端错误
227+
logger.exception('url:%s, retry_time:%d exception:%s' % (url, j, str(e)))
228+
if j < self._retry:
229+
continue
230+
raise CosClientError(str(e))
229231

230232
if res.status_code >= 400: # 所有的4XX,5XX都认为是COSServiceError
231233
if method == 'HEAD' and res.status_code == 404: # Head 需要处理

0 commit comments

Comments
 (0)