Skip to content

Commit

Permalink
Async methods obviously need AsyncRetrying, dummy. (#176)
Browse files Browse the repository at this point in the history
* Async methods obviously need AsyncRetrying, dummy.

---------

Co-authored-by: Raymond Wiker <rayw@equinor.com>
  • Loading branch information
rwiker and Raymond Wiker committed Nov 23, 2023
1 parent acc6418 commit 53135cd
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 5 deletions.
2 changes: 1 addition & 1 deletion src/sumo/wrapper/_blob_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,6 @@ async def _put():
async with httpx.AsyncClient() as client:
return await client.put(url=url, content=blob, headers=headers)

retryer = self._retry_strategy.make_retryer()
retryer = self._retry_strategy.make_retryer_async()

return await retryer(_put)
19 changes: 19 additions & 0 deletions src/sumo/wrapper/_retry_strategy.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,3 +54,22 @@ def make_retryer(self):
retry_error_callback=_return_last_value,
before_sleep=_log_retry_info,
)

def make_retryer_async(self):
return tn.AsyncRetrying(
stop=tn.stop_after_attempt(self._stop_after),
retry=(
tn.retry_if_exception(_is_retryable_exception)
| tn.retry_if_result(_is_retryable_status_code)
),
wait=(
tn.wait_exponential(
multiplier=self._multiplier, exp_base=self._exp_base
)
+ tn.wait_random_exponential(
multiplier=self._multiplier, exp_base=self._exp_base
)
),
retry_error_callback=_return_last_value,
before_sleep=_log_retry_info,
)
8 changes: 4 additions & 4 deletions src/sumo/wrapper/sumo_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -388,7 +388,7 @@ async def _get():
timeout=DEFAULT_TIMEOUT,
)

retryer = self._retry_strategy.make_retryer()
retryer = self._retry_strategy.make_retryer_async()

return await retryer(_get)

Expand Down Expand Up @@ -466,7 +466,7 @@ async def _post():
timeout=DEFAULT_TIMEOUT,
)

retryer = self._retry_strategy.make_retryer()
retryer = self._retry_strategy.make_retryer_async()

return await retryer(_post)

Expand Down Expand Up @@ -514,7 +514,7 @@ async def _put():
timeout=DEFAULT_TIMEOUT,
)

retryer = self._retry_strategy.make_retryer()
retryer = self._retry_strategy.make_retryer_async()

return await retryer(_put)

Expand Down Expand Up @@ -554,6 +554,6 @@ async def _delete():
timeout=DEFAULT_TIMEOUT,
)

retryer = self._retry_strategy.make_retryer()
retryer = self._retry_strategy.make_retryer_async()

return await retryer(_delete)

0 comments on commit 53135cd

Please sign in to comment.