为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Python中限制函数调用的执行时间

如何在Python中限制函数调用的执行时间

茅侃侃 2019-07-11 21:12:44
如何在Python中限制函数调用的执行时间在我的代码中有一个与套接字相关的函数调用,该函数来自另一个模块,因此我无法控制,问题是它偶尔阻塞几个小时,这是完全不能接受的,我如何从代码中限制函数的执行时间?我想解决方案必须利用另一个线程。
查看完整描述

3 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

使用with陈述为了给超时功能一些语法糖:

import signalfrom contextlib import contextmanagerclass TimeoutException(Exception): pass@contextmanagerdef time_limit(seconds):
    def signal_handler(signum, frame):
        raise TimeoutException("Timed out!")
    signal.signal(signal.SIGALRM, signal_handler)
    signal.alarm(seconds)
    try:
        yield
    finally:
        signal.alarm(0)try:
    with time_limit(10):
        long_function_call()except TimeoutException as e:
    print("Timed out!")


查看完整回答
反对 回复 2019-07-11
  • 3 回答
  • 0 关注
  • 772 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信