主线程在可配置的持续时间后因异常而发生一般中断的超时库

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_installpip,例如

pip install signalled-timeout

…或者,来源:

python setup.py install

测试

要在系统上测试发行版,请执行其test命令:

python setup.py test

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Kafka producer大量内存使用(泄漏?)   java NullPointerException。。。正在插入数据但无法检索数据[Mysql DB]   java spring+jpa+hibernate=没有可用于当前线程的实际事务的EntityManager无法可靠地处理“persist”调用   getelementbyid在没有ID的情况下如何在java中使用GetElementsById   java有没有一种使用WatchService强制轮询的方法?   java将值从jframe传递给另一个jframe并使用它   Java/Groovy中带重试的反应式事件处理   具有两个包装器元素的java Jackson XML ArrayList输出   java总是在范围内使用不同的随机元素   取消选择java下拉列表值   多线程如何在Java中为对象的不同成员拥有不同的同步块   java如何使用多线程从文本文件中读取输入   java Spring启动附加崩溃命令   java使用公共或单独的actionPerfomed方法有什么区别   java用Spring3.0中的SpEL替换JSP中的EL   java作为windows服务运行应用程序时无法访问共享文件夹   java xml 1.1规范中的“解析数据”是什么意思?   以编程方式设置JComboBox索引时java触发ItemListener   java Android WebView:只加载HTML,不加载JS或CSS(在某些设备中)   Java:计算do/while循环的数量