diff --git a/setup.py b/setup.py index 87bb9a2..10e44f0 100644 --- a/setup.py +++ b/setup.py @@ -17,7 +17,7 @@ install_requires=[ "betterproto-for-temporal-python-sdk==1.2.5", "dataclasses-json==0.3.8", - "grpcio==1.30.0", + "grpcio==1.43.0", "grpclib==0.3.2", "h2==3.2.0", "more-itertools==7.0.0", diff --git a/temporal/retry.py b/temporal/retry.py index 87fb2b3..0a9a656 100644 --- a/temporal/retry.py +++ b/temporal/retry.py @@ -1,5 +1,6 @@ import asyncio import calendar +from socket import gaierror import time INITIAL_DELAY_SECONDS = 3 @@ -17,6 +18,9 @@ async def retry_loop(*args, **kwargs): await fp(*args, **kwargs) logger.debug("@retry decorated function %s exited, ending retry loop", fp.__name__) break + except (asyncio.CancelledError, gaierror) as err: + logger.info(f"{fp.__name__} raised {err}, retrying...") + await asyncio.sleep(INITIAL_DELAY_SECONDS) except Exception as ex: now = calendar.timegm(time.gmtime()) if last_failed_time == -1 or (now - last_failed_time) > RESET_DELAY_AFTER_SECONDS: