随笔 - 135  文章 - 0  评论 - 0  阅读 - 42990

python为程序执行设置超时时间

 

  • 示例

    """
    程序运行计时工具
    """
    import signal


    class TimeoutException(Exception):
       def __str__(self) -> str:
           return "程序运行超时"


    def timeout_handler(signum, frame):
       """
      超时后执行的方法
      :param signum:
      :param frame:
      :return:
      """
       raise TimeoutException


    def set_timeout(func, timeout: int, *args, **kwargs):
       """
      给方法设置超时时间
      :param func:
      :param timeout:
      :return:
      """
       assert isinstance(timeout, int) and timeout > 0, "超时时间只能为非零正整数"
       signal.signal(signal.SIGALRM, timeout_handler)
       signal.alarm(timeout)
       try:
           res = func(*args, **kwargs)
       finally:
           signal.alarm(0)  # 清除超时设置,防止影响其他程序运行
       return res

     

     

posted on   CJTARRR  阅读(226)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示