@@ -13,8 +13,8 @@ from ... import errors
13
13
{{ relative }}
14
14
{% endfor %}
15
15
16
- sleep_time = 0.05
17
- num_retries = 3
16
+ SLEEP_TIME = 0.05
17
+ NUM_RETRIES = 3
18
18
19
19
{% from "endpoint_macros.py.jinja" import header_params , cookie_params , query_params , json_body , multipart_body ,
20
20
arguments , client , kwargs , parse_response , docstring %}
@@ -103,17 +103,14 @@ def sync_detailed(
103
103
104
104
kwargs['headers'] = {'svix-req-id':f"{random.getrandbits(32)}", **kwargs['headers']}
105
105
106
- retry_count = 0
107
- for retry in range(num_retries):
106
+ for retry_count in range(NUM_RETRIES):
108
107
response = httpx.request(
109
108
verify=client.verify_ssl,
110
109
**kwargs,
111
110
)
112
- if response.status_code >= 500 and retry < num_retries:
113
- retry_count +=1
114
- kwargs['headers']['svix-retry-count']= str(retry_count)
115
- sleep(sleep_time)
116
- sleep_time = sleep_time * 2
111
+ if response.status_code >= 500:
112
+ kwargs['headers']['svix-retry-count'] = str(retry_count)
113
+ sleep(SLEEP_TIME * (2 ** retry_count))
117
114
else:
118
115
break
119
116
@@ -142,16 +139,13 @@ async def asyncio_detailed(
142
139
kwargs['headers'] = {'svix-req-id':f"{random.getrandbits(32)}", **kwargs['headers']}
143
140
144
141
async with httpx.AsyncClient(verify=client.verify_ssl) as _client:
145
- retry_count = 0
146
- for retry in range(num_retries):
142
+ for retry_count in range(NUM_RETRIES):
147
143
response = await _client.request(
148
144
**kwargs
149
145
)
150
- if response.status_code >= 500 and retry < num_retries:
151
- retry_count +=1
152
- kwargs['headers']['svix-retry-count']= str(retry_count)
153
- sleep(sleep_time)
154
- sleep_time = sleep_time * 2
146
+ if response.status_code >= 500:
147
+ kwargs['headers']['svix-retry-count'] = str(retry_count)
148
+ sleep(SLEEP_TIME * (2 ** retry_count))
155
149
else:
156
150
break
157
151
0 commit comments