解决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类:class创建、数据方法属性及访问控制详解
Jul 25 Python
使用PyV8在Python爬虫中执行js代码
Feb 16 Python
Python实现针对给定单链表删除指定节点的方法
Apr 12 Python
一百行python代码将图片转成字符画
Feb 19 Python
使用memory_profiler监测python代码运行时内存消耗方法
Dec 03 Python
python 应用之Pycharm 新建模板默认添加编码格式-作者-时间等信息【推荐】
Jun 17 Python
Python 获取ftp服务器文件时间的方法
Jul 02 Python
Python While循环语句实例演示及原理解析
Jan 03 Python
利用python中集合的唯一性实现去重
Feb 11 Python
Python运行异常管理解决方案
Mar 09 Python
tensorflow安装成功import tensorflow 出现问题
Apr 16 Python
Django通过设置CORS解决跨域问题
Nov 26 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自定义hash函数实例
2015/05/05 PHP
PHP错误处理函数register_shutdown_function使用示例
2017/07/03 PHP
PHP使用Http Post请求发送Json对象数据代码解析
2020/07/16 PHP
LazyForm jQuery plugin 定制您的CheckBox Radio和Select
2009/10/24 Javascript
jQuery中的常用事件总结
2009/12/27 Javascript
js字符串转成JSON
2013/11/07 Javascript
js数组转json并在后台对其解析具体实现
2013/11/20 Javascript
解决jQuery动态获取手机屏幕高和宽的问题
2014/05/07 Javascript
JS循环遍历JSON数据的方法
2014/07/08 Javascript
JavaScript获取指定元素位置的方法
2015/04/08 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
2015/10/29 Javascript
javascript正则表达式总结
2016/02/29 Javascript
通用无限极下拉菜单的实现代码
2016/05/31 Javascript
基于JSONP原理解析(推荐)
2017/12/04 Javascript
JavaScript实现元素滚动条到达一定位置循环追加内容
2017/12/28 Javascript
一秒学会微信小程序制作table表格
2019/02/14 Javascript
JavaScript 处理树数据结构的方法示例
2019/06/16 Javascript
Python之eval()函数危险性浅析
2014/07/03 Python
Python中的startswith和endswith函数使用实例
2014/08/25 Python
Linux中Python 环境软件包安装步骤
2016/03/31 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
2019/06/24 Python
Python生态圈图像格式转换问题(推荐)
2019/12/02 Python
HTML5新控件之日期和时间选择输入的实现代码
2018/09/13 HTML / CSS
英国最大的线上保健品零售商之一:Vitamin Planet
2016/12/01 全球购物
super关键字的用法
2012/04/10 面试题
医学类导师推荐信范文
2013/11/19 职场文书
给医务人员表扬信
2014/01/12 职场文书
党员岗位承诺书
2014/03/25 职场文书
2014年法务工作总结
2014/12/11 职场文书
幼儿教师师德师风自我评价
2015/03/05 职场文书
2015年实习班主任工作总结
2015/04/23 职场文书
电影地道战观后感
2015/06/04 职场文书
课文《燕子》教学反思
2016/02/17 职场文书
Go语言操作数据库及其常规操作的示例代码
2021/04/21 Golang
浅谈Python numpy创建空数组的问题
2021/05/25 Python
python操作xlsx格式文件并读取
2021/06/02 Python