You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Python脚本实现每60秒自动停止并重启?

实现定时+崩溃自动重启的Python脚本

要实现每60秒强制重启,同时保留崩溃自动重启的功能,可以通过定时器触发自定义异常的方式中断主逻辑,结合外层循环完成重启。以下是修改后的代码:

import threading

class RestartException(Exception):
    pass

def trigger_restart():
    raise RestartException("定时重启触发")

while True:
    restart_timer = threading.Timer(60.0, trigger_restart)
    try:
        restart_timer.start()
        do_main_logic()
    except RestartException:
        # 捕获定时重启异常,直接进入下一次循环(重启)
        pass
    except Exception:
        # 捕获其他崩溃异常,同样进入下一次循环
        pass
    finally:
        # 确保定时器被取消,避免残留定时器触发错误
        restart_timer.cancel()

代码说明:

  • 定义RestartException作为定时重启的触发信号,区别于普通崩溃异常。
  • trigger_restart函数负责抛出重启异常,由定时器在60秒后调用。
  • 每次循环启动一个60秒定时器,然后执行主逻辑do_main_logic():
    • 如果主逻辑在60秒内完成,finally块会取消定时器,外层while True会自动启动下一次循环(即重启)。
    • 如果主逻辑运行超过60秒,定时器触发RestartException,中断主逻辑,进入下一次循环重启。
    • 如果主逻辑崩溃抛出其他异常,同样被捕获,进入下一次循环重启。
  • finally块必须执行定时器取消操作,防止主逻辑提前完成后,残留的定时器在后续抛出异常干扰流程。

如果你的do_main_logic()是阻塞型长运行任务,这种方式可以有效中断它;如果是非阻塞任务,也能确保每60秒完成一次重启循环。

内容的提问来源于stack exchange,提问作者pim5825

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 09:55:27