解决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编写类UNIX系统的命令行工具的教程
Apr 15 Python
python爬虫之百度API调用方法
Jun 11 Python
python使用matplotlib库生成随机漫步图
Aug 27 Python
Python Matplotlib库安装与基本作图示例
Jan 09 Python
浅析Python 实现一个自动化翻译和替换的工具
Apr 14 Python
Python实现微信消息防撤回功能的实例代码
Apr 29 Python
pytorch中的自定义数据处理详解
Jan 06 Python
Django 博客实现简单的全文搜索的示例代码
Feb 17 Python
windows、linux下打包Python3程序详细方法
Mar 17 Python
Python opencv相机标定实现原理及步骤详解
Apr 09 Python
Python HTMLTestRunner测试报告view按钮失效解决方案
May 25 Python
python标准库ElementTree处理xml
May 20 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的库,结果发现很多东西
2006/12/31 PHP
PHP安全配置详细说明
2011/09/26 PHP
php实现加减法验证码代码
2014/02/14 PHP
ThinkPHP采用实现三级循环代码实例
2014/07/18 PHP
PHP实现货币换算的方法
2014/11/29 PHP
php连接odbc数据源并保存与查询数据的方法
2014/12/24 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
PHP利用curl发送HTTP请求的实例代码
2020/07/09 PHP
JS中confirm,alert,prompt函数使用区别分析
2010/04/01 Javascript
javscript对象原型的一些看法
2010/09/19 Javascript
深入理解JavaScript系列(6) 强大的原型和原型链
2012/01/15 Javascript
jQuery+CSS实现菜单滑动伸展收缩(仿淘宝)
2013/03/22 Javascript
让table变成exls的示例代码
2014/03/24 Javascript
Javascript学习指南
2014/12/01 Javascript
node.js中的fs.truncateSync方法使用说明
2014/12/15 Javascript
DOM基础教程之使用DOM设置文本框
2015/01/20 Javascript
javascript iframe跨域详解
2016/10/26 Javascript
基于axios封装fetch方法及调用实例
2018/02/05 Javascript
JavaScript比较同一天的时间大小实例代码
2018/02/09 Javascript
记一次Vue.js混入mixin的使用(分权限管理页面)
2019/04/17 Javascript
个人小程序接入支付解决方案
2019/05/23 Javascript
Layui事件监听的实现(表单和数据表格)
2019/10/17 Javascript
浅谈vue中使用编辑器vue-quill-editor踩过的坑
2020/08/03 Javascript
解决python运行启动报错问题
2020/06/01 Python
Python 字符串池化的前提
2020/07/03 Python
Python Web项目Cherrypy使用方法镜像
2020/11/05 Python
竞选班长演讲稿
2013/12/30 职场文书
老师对学生的寄语
2014/04/09 职场文书
企业法人代表授权委托书
2014/10/02 职场文书
三八红旗手事迹材料
2014/12/26 职场文书
反腐倡廉主题教育活动总结
2015/05/07 职场文书
画展观后感
2015/06/17 职场文书
巴黎圣母院读书笔记
2015/06/26 职场文书
python 如何在list中找Topk的数值和索引
2021/05/20 Python
python unittest单元测试的步骤分析
2021/08/02 Python