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

如何用Python schedule库实现定时启动、间隔运行并按时终止任务

现有代码的问题

  • 缺少time库导入,运行时会触发NameError
  • 每日6点添加的每30分钟执行的print2任务没有终止逻辑,会持续运行到进程退出
  • 第二天6点会重复添加新的print2定时任务,导致重复执行
  • 示例中10点的任务创建后立即取消,属于无效代码

修复后可实现需求的代码

import schedule
import time

# 存储30分钟间隔执行的任务对象,方便后续取消
interval_job = None

def print2():
    print("间隔30分钟执行计算")

def add_interval_job():
    global interval_job
    # 先判断是否已有未取消的间隔任务,避免重复添加
    if interval_job is None:
        interval_job = schedule.every(30).minutes.do(print2)
    # 不需要首次立即执行的话可以删掉下一行
    print2()

def cancel_interval_job():
    global interval_job
    if interval_job is not None:
        schedule.cancel_job(interval_job)
        interval_job = None

# 每日6点添加30分钟间隔任务
schedule.every().day.at('06:00').do(add_interval_job)
# 每日22点取消30分钟间隔任务
schedule.every().day.at('22:00').do(cancel_interval_job)

if __name__ == "__main__":
    while True:
        schedule.run_pending()
        time.sleep(1)

逻辑说明

  • 用全局变量interval_job存储间隔任务的实例,保证每次取消的是对应任务,也避免重复添加
  • 每日6点触发add_interval_job函数,添加每30分钟执行一次的print2任务,可选择是否立即执行第一次
  • 每日22点触发cancel_interval_job函数,取消间隔任务,当天不再执行
  • 整个流程次日会自动重复,不需要额外处理
  • 测试时可将30).minutes改为对应秒数、将定时的06:00/22:00改为临近时间,快速验证效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 10:30:02