这是标准的语言中立的方法。
import logging
logger = logging.getLogger(__file__)
class SomeClass(object):
max_retry = 2
def get(self, key):
try:
return self.__get_value(key)
except Exception:
logger.error("Exception occured even after retrying...")
raise
def __get_value(self, key, retry_num=0):
try:
return self.connection().get(key)
except Exception:
logger.error("Exception occured")
if retry_num < self.max_retry:
retry_num += 1
logger.warning("Retrying!!! Retry count - %s", retry_num)
self.__get_value(key, retry_num)
else:
raise有什么更好的pythonic方法来做到这一点吗?
发布于 2019-05-06 15:16:22
更简单的方法是不要更改类的状态,因为它只是为了函数调用而重试(当方法多次被调用时,当前的实现不能像预期的那样工作)。我更希望使用重试装饰器(在成功时使用带中断的as循环),用于:
...
@retry(n_times=2, catch=Exception)
def get (self, key):
...https://stackoverflow.com/questions/56007554
复制相似问题