我们跑代码往往有一个需求,如果代码出错不希望它hang那边或者代码出错一直运行占用系统资源。最近跑Spark SQL发现有的Application总会因为配置参数出错而hang那边半天,就很烦。搜了一下代码,发现好多人写的又垃圾又难用,这里贴上我的可用的代码模板:
# coding=utf-8
import threading
#运行你的应用程序的函数,自定义实现
def runApp():
for i in range(10000000):
print(i)
#杀死你应用程序的函数,自定义实现
def killApp():
exit()
if __name__ == '__main__':
# 设置超时时间为1s
timeLimit = 1
t = threading.Thread(target=runApp)
t.setDaemon(True)
#运行你的应用程序
t.start()
t.join(timeLimit)
print("it's over")
#如果线程还在运行,就杀死它
killApp()
唯一你需要关注的参数就是timiLimit,它表示你希望你的应用运行多长时间退出,一般最后需要加入杀死应用程序的代码,在runAPP以及killAPP里自定义你的代码即可,亲测可用!