我正在使用https://pypi.org/project/retrying/#description并注意到@retry 实际上并没有停止我的按下过程,Ctrl+C
尽管它在终端上停止。如果我这样做ps -ef
了,我仍然能够找到正在运行的进程。
@retry(stop_max_attempt_number=3)
def stop_after_3_attempts():
# .... some code
sleep(60)
print "process is killed on KeyboardInterrupt due to @retry"
# KeyboardInterrupt is not meant to be handled in my app and except process to get killed
我知道我们可以使用retry_on_exception
参数并忽略 KeyboardInterrupt 异常。
问题:
- @retry 实际上是否重试所有异常,包括 BaseExceptions?
- 默认情况下它不排除 KeyboardInterrupt 的任何原因?
- 是定义
retry_on_exception
忽略键盘中断的唯一方法吗?