当前位置: 首页 > article >正文

Python中函数添加超时时间,Python中signal使用

    from time import time, sleep
    import signal
    
    # 模拟要删除5条数据,中间有超时的
    i = 5
    
    # 超时后执行的方法
    def timeout_handler(signal, frame):
        # 引发异常
        raise TimeoutError("删除第" + str(i) + "条,超时!")
    # 或者执行其他操作,不往外抛异常(超时的函数不会被终止,会继续往下执行;一般只记录一下日志)
    # def timeout_handler(signal,frame):
    #     print("--删除第"+str(i)+"条,超时!--")
    
    
    signal.signal(signal.SIGALRM, timeout_handler)
    
    
    def remDate():
        # 设置超时时间
        signal.alarm(1)
        print("准备删除第" + str(i) + "条")
        if i % 2 == 0:
            sleep(1)    # 休眠1秒,模拟删除操作超时
        return "删除第" + str(i) + "条,成功!"
    
    
    while i > 0:
        try:
            print(remDate())
        except Exception as e:
            print("超时 + ", e)
        print("----------------------------------------------")
        i = i - 1

抛异常的运行结果:

 

不抛异常的运行结果:


http://www.kler.cn/a/160264.html

相关文章:

  • git配置远程仓库的认证信息
  • Linux网络——网络初识
  • redis bind 127.0.0.1和bind 10.34.56.78的区别
  • Mac intel 安装IDEA激活时遇到问题 jetbrains.vmoptions.plist: Permission denied
  • TortoiseSVN提示服务器凭证检核错误:站点名称不符
  • 密码学的基本原理
  • Linux中的输入输出重定向
  • 城市之眼:数据可视化在智慧城市的角色
  • AWS基于x86 vs Graviton(ARM)的RDS MySQL性能对比
  • MS SQL Table与JSON转换
  • docker基本管理和相关概念
  • 获取网络ppt资源
  • Terraform实战(一)-Terraform介绍与安装部署
  • C语言——二级指针
  • Day46力扣打卡
  • *p++和(*p)++的区别
  • 异常(C++)
  • 【Spring Boot】如何通过RestTemplate获取另一个服务的接口返回信息
  • 深信服行为管理AC设置禁止用户使用向日葵等远程软件
  • 人工智能-语音识别技术paddlespeech的搭建和使用
  • centos用户相关命令
  • python起步
  • 问卷调查须避免的错误要点(02):避免逻辑错误与提升数据质量
  • 基于jsp+servlet+mybatis的简易在线选课系统
  • Dubbo(二)dubbo调用关系
  • golang使用sip协议 用户名和密码注册到vos3000