一个简单的util库,用于创建需要继续运行的应用程序,尽管存在异常
pyrobustness的Python项目详细描述
关于
一个简单的util库,用于创建需要继续运行的应用程序,即使出现异常情况
安装
pip install pyrobustness
用法
超时示例:
fromrobust.toolsimporttimeout@timeout(5)defvery_long_job():importtimewhileTrue:print("Zzz")time.sleep(1)very_long_job()
重试示例:
fromrobust.toolsimportretry@retry(5)defvery_broken_method():print(".")raiseRuntimeError("Something is broken...")whileTrue:very_broken_method()
断路器示例:
importtimefromrobust.toolsimportbreakercounter=0@breaker(limit=5,revive=5)defvery_broken_method():nonlocalcounterifcounter<=5:counter+=1raiseRuntimeError("Something is broken...")else:print("We've made it!")whileTrue:try:very_broken_method()exceptRuntimeError:passexceptException:breaktime.sleep(5)very_broken_method()
版本历史记录
- 1.1条:
- 用于支持Windows操作系统的报警线程的附加类型,或在信号不按预期工作的某些情况下
- 断路器图案,灵感来源于Daniel Riti@Pycon 2016的演讲
- 1.0:初始版本