当前位置: 首页 > 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/news/160264.html

相关文章:

  • 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
  • vue3中如何实现事件总线eventBus
  • 【数据结构(八)】哈希表
  • OpenCV-python numpy和基本作图
  • 甘草书店:#8 2023年11月22日 星期三「“说一套做一套”的甘草与麦田」
  • InnoDB的数据存储结构
  • Qt5.15.2的镜像网址
  • 用100ask 6ull配合 飞凌 elf1的教程进行学习的记录 - ap3216
  • SQL手工注入漏洞测试(Sql Server数据库)-墨者
  • 【Linux】进程控制-进程终止
  • 【musl-pwn】msul-pwn 刷题记录 -- musl libc 1.2.2