python自动定时任务schedule库的使用方法

当你需要在 Python 中定期执行任务时,schedule 库是一个非常实用的工具。它可以帮助你自动化定时任务。以下是一些使用示例:

  1. 基本使用:import schedule
    import time

    def job():
       print(“I’m working…”)

    schedule.every(10).minutes.do(job)

    while True:
       schedule.run_pending()
       time.sleep(1)上面的代码表示每隔 10 分钟执行一次 job 函数,非常简单方便。
  2. 更多调度任务例子:import schedule
    import time

    def job():
       print(“I’m working…”)

    # 每十分钟执行任务
    schedule.every(10).minutes.do(job)
    # 每个小时执行任务
    schedule.every().hour.do(job)
    # 每天的10:30执行任务
    schedule.every().day.at(“10:30”).do(job)
    # 每个月执行任务
    schedule.every().monday.do(job)
    # 每个星期三的13:15分执行任务
    schedule.every().wednesday.at(“13:15”).do(job)
    # 每分钟的第17秒执行任务
    schedule.every().minute.at(“:17”).do(job)

    while True:
       schedule.run_pending()
       time.sleep(1)
  3. 只运行一次任务:import schedule
    import time

    def job_that_executes_once():
       # 此处编写的任务只会执行一次…
       return schedule.CancelJob

    schedule.every().day.at(’22:30′).do(job_that_executes_once)

    while True:
       schedule.run_pending()
       time.sleep(1)
  4. 参数传递给作业:import schedule

    def greet(name):
       print(‘Hello’, name)

    # 将额外的参数传递给 job 函数
    schedule.every(2).seconds.do(greet, name=’Alice’)
    schedule.every(4).seconds.do(greet, name=’Bob’)
  5. 获取目前所有的作业:all_jobs = schedule.get_jobs()
  6. 取消所有作业:schedule.clear()
  7. 标签功能:# 打标签
    schedule.every().day.do(greet, ‘Andrea’).tag(‘daily-tasks’, ‘friend’)
    schedule.every().hour.do(greet, ‘John’).tag(‘hourly-tasks’, ‘friend’)
    # 获取所有该标签的任务
    friends = schedule.get_jobs(‘friend’)
    # 取消所有 daily-tasks 标签的任务
    schedule.clear(‘daily-tasks’)
  8. 设定作业截止时间:from datetime import datetime, timedelta, time

    def job():
       print(‘Boo’)

    # 每个小时运行作业,18:30后停止
    schedule.every(1).hours.until(“18:30”).do(job)
    # 其他截止时间设置…

[这些示例涵盖了从秒到月的不同配置,你可以根据需求选择合适的定时任务方式。