什么是 schedule?
schedule 是一个用于在 Python 中执行周期性任务的第三方库。 它语法简洁、易于理解,非常适合小型项目或脚本中需要定时执行某些操作的场景。
与复杂的任务调度系统(如 Celery 或 APScheduler)不同,schedule 不依赖外部服务,纯 Python 实现,上手极快。
快速开始
1. 安装
pip install schedule
2. 基本示例
import schedule
import time
def job():
print("Hello! 任务正在运行...")
schedule.every(10).seconds.do(job)
while True:
schedule.run_pending()
time.sleep(1)
上述代码每 10 秒执行一次 job() 函数。
常用调度方式
schedule.every(10).minutes.do(job)—— 每10分钟schedule.every().hour.do(job)—— 每小时schedule.every().day.at("10:30").do(job)—— 每天10:30schedule.every().monday.do(job)—— 每周一schedule.every().wednesday.at("13:15").do(job)—— 每周三13:15schedule.every().minute.at(":17").do(job)—— 每分钟的第17秒
进阶技巧
取消任务
job_instance = schedule.every().day.at("12:00").do(my_task)
schedule.cancel_job(job_instance)
并行执行(需结合线程)
import threading
def run_threaded(job_func):
job_thread = threading.Thread(target=job_func)
job_thread.start()
schedule.every().hour.do(run_threaded, my_long_task)
⚠️ 注意:schedule 本身是单线程的,若任务耗时较长,建议使用线程避免阻塞调度循环。
适用场景
- 定时数据抓取或备份
- 每日/每周报表生成
- 健康检查脚本
- 自动化测试中的周期性触发
- 本地开发环境中的模拟定时任务
💡 提示:对于生产环境中的高可靠性需求,建议考虑更健壮的调度系统(如 cron + systemd 或分布式任务队列)。