python 进程超时自动退出 装饰器
为啥写这个装饰器
之前做用例测试的时候,单进程测试,发现有些用例执行时间特别长,卡死,影响下面用例的执行。刚开始在主函数内添加了超时退出,但是感觉用的不方便,虽然也能实现功能,但是主函数变得特别累赘,所以还是选择写一个装饰器。
思路
利用python的多线程一个线程控制主进程运行时间,时间到则利用线程os._exit()迫使主进程退出。另一个线程调用主进程函数执行脚本。
代码
from functools import wraps
import time
import os
from threading import Thread
def set_time_limit(t):
def auto_quit(t1):
'''此为控制进程超时退出的线程函数'''
time.sleep(t1)
print("time out {}".format(t1))
os._exit(