解决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通过邮件服务器端口发送邮件的方法
Apr 30 Python
详解python发送各类邮件的主要方法
Dec 22 Python
Python 删除连续出现的指定字符的实例
Jun 29 Python
在python中利用KNN实现对iris进行分类的方法
Dec 11 Python
python计算阶乘和的方法(1!+2!+3!+...+n!)
Feb 01 Python
python实现扫描ip地址的小程序
Apr 16 Python
python程序快速缩进多行代码方法总结
Jun 23 Python
Python实现微信翻译机器人的方法
Aug 13 Python
OpenCV+face++实现实时人脸识别解锁功能
Aug 28 Python
Python3 无重复字符的最长子串的实现
Oct 08 Python
Django模型中字段属性choice使用说明
Mar 30 Python
Django后端按照日期查询的方法教程
Feb 28 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
PHP中数组定义的几种方法
2013/09/01 PHP
php.ini save_handler 修改不生效的解决办法
2014/07/22 PHP
PHP中实现获取IP和地理位置类分享
2015/02/10 PHP
PHP使用递归算法无限遍历数组示例
2017/01/13 PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
2018/10/30 PHP
用javascript实现的图片马赛克后显示并切换加文字功能
2007/04/21 Javascript
JavaScript 的方法重载效果
2009/08/07 Javascript
javascript 遍历验证所有文本框的值
2009/08/27 Javascript
把字符串按照特定的字母顺序进行排序的js代码
2014/01/28 Javascript
javascript获取dom的下一个节点方法
2014/09/05 Javascript
JavaScript运算符小结
2015/06/03 Javascript
Bootstrap源码解读模态弹出框(11)
2016/12/28 Javascript
jQuery加密密码到cookie的实现代码
2017/04/18 jQuery
vuex state及mapState的基础用法详解
2018/04/19 Javascript
Javascript的console['']常用输入方法汇总
2018/04/26 Javascript
React之PureComponent的使用作用
2018/07/10 Javascript
JS实现计算小于非负数n的素数的数量算法示例
2019/02/26 Javascript
详解javascript中的Error对象
2019/04/25 Javascript
[35:34]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python使用urllib模块和pyquery实现阿里巴巴排名查询
2014/01/16 Python
python3.6生成器yield用法实例分析
2019/08/23 Python
Python图片的横坐标汉字实例
2019/12/04 Python
python3 webp转gif格式的实现示例
2019/12/10 Python
HTML5中的nav标签学习笔记
2016/06/24 HTML / CSS
波兰运动鞋网上商店:Distance.pl
2020/07/30 全球购物
大学生军训感想
2014/02/16 职场文书
安全责任书范文
2014/03/12 职场文书
教师节活动总结
2014/08/29 职场文书
村党支部书记四风问题个人对照检查材料思想汇报
2014/10/06 职场文书
2014年安置帮教工作总结
2014/12/11 职场文书
学雷锋倡议书
2015/01/19 职场文书
2015年社区国庆节活动总结
2015/07/30 职场文书
2016年教师学习教师法心得体会
2016/01/20 职场文书
2019幼儿园感恩节活动策划书
2019/11/28 职场文书
python实现批量移动文件
2021/04/05 Python
xhunter1.sys可以删除嘛? win11提示xhunter1.sys驱动不兼容解决办法
2022/09/23 数码科技