主线程在可配置的持续时间后因异常而发生一般中断的超时库
signalled-timeout的Python项目详细描述
异常导致主线程一般中断的超时库 在可配置的持续时间之后。
用例
设置超时时间(秒),超时时间到期时将引发异常:
from timeout import timeout
…作为上下文管理器:
with timeout(0.5): ... work ...
…或修饰函数:
@timeout(0.5) def work(): ...
可以通过传递异常来配置异常 实例,或通过指定重写异常类和/或 值:
with timeout(0.5, RuntimeError("Work took too long")): ... work ... with timeout(0.5, RuntimeError, "Work took too long"): ... work ... with timeout(0.5, exc=RuntimeError): ... work ... with timeout(0.5, value="Work took too long"): ... work ... with timeout(0.5, value=(2, "Took too long", 'work.py')): ... work ...
超时异常默认为 TimeoutError("Operation timed out")。
注意:timeout是通过signal实现的,因此可能不是 应用于进程的主线程之外。
安装
signalled-timeout是一个python发行版,可以安装 通过easy_install或pip,,例如:
pip install signalled-timeout
…或者,来源:
python setup.py install
测试
要在系统上测试发行版,请执行其test命令:
python setup.py test