解决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二叉树遍历的实现方法
Nov 21 Python
Python操作列表的常用方法分享
Feb 13 Python
Python深入学习之特殊方法与多范式
Aug 31 Python
LRUCache的实现原理及利用python实现的方法
Nov 21 Python
Android基于TCP和URL协议的网络编程示例【附demo源码下载】
Jan 23 Python
python 利用for循环 保存多个图像或者文件的实例
Nov 09 Python
python文件读写代码实例
Oct 21 Python
基于python操作ES实例详解
Nov 16 Python
python通用读取vcf文件的类(复制粘贴即可用)
Feb 29 Python
浅谈django channels 路由误导
May 28 Python
pandas DataFrame运算的实现
Jun 14 Python
一文搞懂如何实现Go 超时控制
Mar 30 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 iconv() : Detected an illegal character in input string
2010/12/05 PHP
PHP结合jQuery实现找回密码
2015/07/22 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
tp5框架无刷新分页实现方法分析
2019/09/26 PHP
js获取图片长和宽度的代码
2009/11/24 Javascript
jQuery控制TR显示隐藏的几种方法
2014/06/18 Javascript
JS遍历Json字符串中键值对先转成JSON对象再遍历
2014/08/15 Javascript
Javascript定义类(class)的三种方法详解
2015/03/13 Javascript
基于vue2的table分页组件实现方法
2017/03/20 Javascript
深入了解JavaScript 的 WebAssembly
2019/06/15 Javascript
ant design vue datepicker日期选择器中文化操作
2020/10/28 Javascript
Python实现全角半角转换的方法
2014/08/18 Python
使用Mixin设计模式进行Python编程的方法讲解
2016/06/21 Python
Python常用的内置序列结构(列表、元组、字典)学习笔记
2016/07/08 Python
python+django+sql学生信息管理后台开发
2018/01/11 Python
Python中的二维数组实例(list与numpy.array)
2018/04/13 Python
Python下载网易云歌单歌曲的示例代码
2020/08/12 Python
python如何使用腾讯云发送短信
2020/09/17 Python
python中re模块知识点总结
2021/01/17 Python
Pytorch如何切换 cpu和gpu的使用详解
2021/03/01 Python
谈一谈HTML5本地存储技术
2016/03/02 HTML / CSS
澳大利亚最早和最古老的巨型游戏专家:Yardgames
2020/02/20 全球购物
管理专员自荐信
2014/01/26 职场文书
货物运输服务质量承诺书
2014/05/29 职场文书
2014年党员自我评议(5篇)
2014/09/12 职场文书
民政局个人整改措施
2014/09/24 职场文书
人事专员岗位职责
2015/02/03 职场文书
放射科岗位职责
2015/02/14 职场文书
体检通知范文
2015/04/21 职场文书
工作失职自我检讨书
2015/05/05 职场文书
2015年高校保卫处工作总结
2015/07/23 职场文书
生产实习心得体会范文
2016/01/22 职场文书
详解CocosCreator消息分发机制
2021/04/16 Javascript
python用tkinter开发的扫雷游戏
2021/06/01 Python
关于CSS自定义属性与前端页面的主题切换问题
2022/03/21 HTML / CSS
Tomcat弱口令复现及利用
2022/05/06 Servers