如何解决在Python中重试装饰器
我正在尝试使用重试装饰器。它运行良好,但是当达到最大重试次数时,就会出现异常情况。如何避免这种异常情况从这种情况下很好地返回,或者在发生这种情况时如何返回值?
import random
from retrying import retry
@retry( wait_fixed = 500,stop_max_delay = 2000 )
def _do_something_unreliable():
actual = random.randint(0,10)
expected = 11
print actual
print expected
print '=' *30
if actual != expected: # retry does not succeed
raise IOError( "Broken" )
_do_something_unreliable()
结果:
3
11
==============================
7
11
==============================
2
11
==============================
5
11
==============================
Traceback (most recent call last):
File "/home/itaybz/Documents/newKlara/infra/__stam.py",line 15,in <module>
_do_something_unreliable()
File "/home/itaybz/.local/lib/python2.7/site-packages/retrying.py",line 49,in wrapped_f
return Retrying(*dargs,**dkw).call(f,*args,**kw)
File "/home/itaybz/.local/lib/python2.7/site-packages/retrying.py",line 212,in call
raise attempt.get()
File "/home/itaybz/.local/lib/python2.7/site-packages/retrying.py",line 247,in get
six.reraise(self.value[0],self.value[1],self.value[2])
File "/home/itaybz/.local/lib/python2.7/site-packages/retrying.py",line 200,in call
attempt = Attempt(fn(*args,**kwargs),attempt_number,False)
File "/home/itaybz/Documents/newKlara/infra/__stam.py",line 13,in _do_something_unreliable
raise IOError( "Broken" )
IOError: Broken
6
11
==============================
Process finished with exit code 1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。