解决Python设置函数调用超时,进程卡住的问题


Posted in Python onAugust 08, 2019

背景:

最近写的Python代码不知为何,总是执行到一半卡住不动,为了使程序能够继续运行,设置了函数调用超时机制。

代码:

import time
import signal
 
 
def test(i):
 time.sleep(i % 4)
 print "%d within time" % (i)
 return i
 
 
if __name__ == '__main__':
 def handler(signum, frame):
 raise AssertionError
 
 
for i in range(1, 10):
 try:
  signal.signal(signal.SIGALRM, handler)
  signal.alarm(3)
  test(i)
 except AssertionError:
  print "%d timeout" % (i)
 finally:
  signal.alarm(0)
  signal.signal(signal.SIGALRM, signal.SIG_DFL)

说明:

1、调用test函数超时监控,使用sleep模拟函数执行超时

2、引入signal模块,设置handler捕获超时信息,返回断言错误

3、alarm(3),设置3秒闹钟,函数调用超时3秒则直接返回

4、捕获异常,打印超时信息

程序执行结果:

1 within time
2 within time
3 timeout
4 within time
5 within time
6 within time
7 timeout
8 within time
9 within time

以上这篇解决Python设置函数调用超时,进程卡住的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
理解Python中的绝对路径和相对路径
Aug 30 Python
Python实现学生成绩管理系统
Apr 05 Python
python中的json总结
Oct 11 Python
Python实现字典排序、按照list中字典的某个key排序的方法示例
Dec 18 Python
python中字符串数组逆序排列方法总结
Jun 23 Python
简单介绍python封装的基本知识
Aug 10 Python
离线状态下在jupyter notebook中使用plotly实例
Apr 24 Python
使用Keras实现Tensor的相乘和相加代码
Jun 18 Python
深入浅析pycharm中 Make available to all projects的含义
Sep 15 Python
python中的对数log函数表示及用法
Dec 09 Python
python爬取股票最新数据并用excel绘制树状图的示例
Mar 01 Python
Python天气语音播报小助手
Sep 25 Python
Python 根据日志级别打印不同颜色的日志的方法示例
Aug 08 #Python
Python学习笔记之错误和异常及访问错误消息详解
Aug 08 #Python
Python实现直方图均衡基本原理解析
Aug 08 #Python
python获取指定日期范围内的每一天,每个月,每季度的方法
Aug 08 #Python
Python 调用 Outlook 发送邮件过程解析
Aug 08 #Python
python判断自身是否正在运行的方法
Aug 08 #Python
Python 日期区间处理 (本周本月上周上月...)
Aug 08 #Python
You might like
图形数字验证代码
2006/10/09 PHP
不用数据库的多用户文件自由上传投票系统(2)
2006/10/09 PHP
PHP的范围解析操作符(::)的含义分析说明
2011/07/03 PHP
在Mac上编译安装PHP7的开发环境
2015/07/28 PHP
tp5.1 框架数据库-数据集操作实例分析
2020/05/26 PHP
javascript英文日期(有时间)选择器
2007/05/02 Javascript
Jquery 数据选择插件Pickerbox使用介绍
2012/08/24 Javascript
JS实现5秒钟自动封锁div层的方法
2015/02/20 Javascript
JQuery菜单效果的两个实例讲解(3)
2015/09/17 Javascript
解决JavaScript数字精度丢失问题的方法
2015/12/03 Javascript
AngularJs Understanding the Controller Component
2016/09/02 Javascript
使用bootstrap validator的remote验证代码经验分享(推荐)
2016/09/21 Javascript
js+canvas实现动态吃豆人效果
2017/03/22 Javascript
JavaScript中的高级函数
2018/01/04 Javascript
jQuery控制input只能输入数字和两位小数的方法
2019/05/16 jQuery
Vue SPA 初次进入加载动画实现代码
2019/11/14 Javascript
[00:20]TI9不朽观赛名额抽取
2019/08/05 DOTA
[54:28]EG vs OG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
[40:19]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.18
2020/12/19 DOTA
[01:05:52]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第一场 2月2日
2021/03/11 DOTA
Python编程求解二叉树中和为某一值的路径代码示例
2018/01/04 Python
自学python用什么系统好
2020/06/23 Python
如何清空python的变量
2020/07/05 Python
python 如何调用远程接口
2020/09/11 Python
Python爬虫爬取有道实现翻译功能
2020/11/27 Python
Marriott国际:万豪国际酒店查询预订
2017/09/25 全球购物
英文自荐信
2013/12/19 职场文书
给客户的道歉信
2014/01/13 职场文书
餐饮企业总经理岗位职责范文
2014/02/18 职场文书
2014两会学习心得:榜样精神伴我行
2014/03/17 职场文书
毕业设计说明书
2014/05/07 职场文书
经济信息系毕业生自荐信
2014/06/02 职场文书
解除聘用合同证明书范本
2014/09/11 职场文书
逃课检讨书怎么写
2015/01/01 职场文书
2015年社区统计工作总结
2015/04/21 职场文书
PHP使用非对称加密算法RSA
2021/04/21 PHP