python执行函数超时处理

安装func_timeout库

pip install func_timeout

设定函数超执行时间

@func_set_timeout(60) # 设定超时时间
def run_order(order):
    print(os.popen(order).read())
    print('脚本运行成功')

若调用函数超时自动走异常

try:
    run_order(order)
except func_timeout.exceptions.FunctionTimedOut:
    print('脚本运行超时')

实例

#!/usr/bin/env python
# -*- coding:utf-8 -*-


import time
import func_timeout
from func_timeout import func_set_timeout


@func_set_timeout(5) # 设定函数执行时间
def task():
    print('开始运行!')
    time.sleep(6)
    return '执行成功,未超时'


if __name__ == '__main__':
    try:
        print(task())
        # 若调用函数超时走异常
    except func_timeout.exceptions.FunctionTimedOut:
        print('执行函数超时')
        raise TimeoutError
    else:
        print('没抛异常,继续')
    finally:
        print('不管有没有抛异常,我都继续')

http://www.manongjc.com/detail/24-gmifyruftikjsvv.html