python 限制函数执行时间,自己实现timeout的实例


Posted in Python onJanuary 12, 2019

如下所示:

# coding=utf-8
import signal
import time
 
 
def set_timeout(num, callback):
  def wrap(func):
    def handle(signum, frame): # 收到信号 SIGALRM 后的回调函数,第一个参数是信号的数字,第二个参数是the interrupted stack frame.
      raise RuntimeError
 
    def to_do(*args, **kwargs):
      try:
        signal.signal(signal.SIGALRM, handle) # 设置信号和回调函数
        signal.alarm(num) # 设置 num 秒的闹钟
        print 'start alarm signal.'
        r = func(*args, **kwargs)
        print 'close alarm signal.'
        signal.alarm(0) # 关闭闹钟
        return r
      except RuntimeError as e:
        callback()
 
    return to_do
 
  return wrap
 
 
if __name__ == '__main__':
  def after_timeout(): # 超时后的处理函数
    print "do something after timeout."
 
 
  @set_timeout(2, after_timeout) # 限时 2 秒
  def connect(): # 要执行的函数
    time.sleep(1) # 函数执行时间,写大于2的值,可测试超时
    return 'connect success.'
 
 
  print connect()

以上这篇python 限制函数执行时间,自己实现timeout的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法
Jan 20 Python
Redis使用watch完成秒杀抢购功能的代码
May 07 Python
Python将json文件写入ES数据库的方法
Apr 10 Python
详解Python匿名函数(lambda函数)
Apr 19 Python
Python高级特性 切片 迭代解析
Aug 23 Python
使用Pandas的Series方法绘制图像教程
Dec 04 Python
pycharm 2018 激活码及破解补丁激活方式
Sep 21 Python
keras自动编码器实现系列之卷积自动编码器操作
Jul 03 Python
python如何停止递归
Sep 09 Python
python 实现倒计时功能(gui界面)
Nov 11 Python
PyChon中关于Jekins的详细安装(推荐)
Dec 28 Python
python文件目录操作之os模块
May 08 Python
Python构建图像分类识别器的方法
Jan 12 #Python
使用python opencv对目录下图片进行去重的方法
Jan 12 #Python
python变量赋值方法(可变与不可变)
Jan 12 #Python
python交换两个变量的值方法
Jan 12 #Python
对Pyhon实现静态变量全局变量的方法详解
Jan 11 #Python
浅谈Python中的全局锁(GIL)问题
Jan 11 #Python
Python 实现子类获取父类的类成员方法
Jan 11 #Python
You might like
2020年4月新番动漫目录 官方宣布4月播出的作品一览
2020/03/08 日漫
利用PHP实现短域名互转
2013/07/05 PHP
PHP日期函数date格式化UNIX时间的方法
2015/03/19 PHP
php使用number_format函数截取小数的方法分析
2016/05/27 PHP
PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)
2016/09/11 PHP
javascript 二维数组的实现与应用
2010/03/16 Javascript
jquery动态添加option示例
2013/12/30 Javascript
推荐10个2014年最佳的jQuery视频插件
2014/11/12 Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
2014/12/10 Javascript
javascript面向对象之定义成员方法实例分析
2015/01/13 Javascript
Javascript中的包装类型介绍
2015/04/02 Javascript
AngularJS中的过滤器使用详解
2015/06/16 Javascript
跟我学习javascript的call(),apply(),bind()与回调
2015/11/16 Javascript
Ajax的概述与实现过程
2016/11/18 Javascript
Vue2.0设置全局样式(less/sass和css)
2017/11/18 Javascript
操作按钮悬浮固定在微信小程序底部的实现代码
2019/08/02 Javascript
Vue全局loading及错误提示的思路与实现
2019/08/09 Javascript
详解Django+uwsgi+Nginx上线最佳实战
2019/03/14 Python
vscode 配置 python3开发环境的方法
2019/09/19 Python
Win系统PyQt5安装和使用教程
2019/12/25 Python
基于Django OneToOneField和ForeignKey的区别详解
2020/03/30 Python
HTML5自定义属性的问题分析
2019/08/16 HTML / CSS
韩国CJ食品专卖网:CJonmart
2016/09/11 全球购物
英国露营设备和户外服装购物网站:Simply Hike
2019/05/05 全球购物
请描述一下”is a”关系和”has a”关系
2015/02/03 面试题
什么是静态路由?什么是动态路由?各自的特点是什么?
2015/09/16 面试题
感恩母亲节演讲稿
2014/05/07 职场文书
优秀实习生主要事迹
2014/05/29 职场文书
大学毕业生推荐信
2014/07/09 职场文书
新疆民族团结演讲稿
2014/08/27 职场文书
2014年教师批评与自我批评思想汇报
2014/09/20 职场文书
个人批评与自我批评发言稿
2014/09/28 职场文书
党的群众路线教育实践活动总结大会主持词
2014/10/30 职场文书
2014年小学英语教师工作总
2014/12/03 职场文书
使用numpy nonzero 找出非0元素
2021/05/14 Python
python实现对doc、txt、xls等文档的读写操作
2022/04/02 Python