schedule 定时运行 Python 函数

安装

复制pip install schedule

例子

每x分钟运行一次
复制import schedule
import time

def job():
    print("I'm working...")

# 每 3 秒/分钟/小时/天/周运行一次任务、
# 从现在开始每 3 秒/分钟/小时/天/周运行一次作业
schedule.every(3).seconds.do(job)
schedule.every(3).minutes.do(job)
schedule.every(3).hours.do(job)
schedule.every(3).days.do(job)
schedule.every(3).weeks.do(job)

# 每分钟在第 23 秒运行任务
schedule.every().minute.at(":23").do(job)

# 每小时第42分钟运行
schedule.every().hour.at(":42").do(job)

# 每隔 5 小时 20 分 30 秒执行一次任务。
# 如果当前时间是 02:00,则第一次执行时间为 06:20:30
schedule.every(5).hours.at("20:30").do(job)

#每天在指定的 HH:MM 和下一个 HH:MM:SS 运行任务
schedule.every().day.at("10:30").do(job)
schedule.every().day.at("10:30:42").do(job)
schedule.every().day.at("12:42", "Europe/Amsterdam").do(job)

# 在一周的某一天运行任务
schedule.every().monday.do(job)
schedule.every().wednesday.at("13:15").do(job)
schedule.every().minute.at(":17").do(job)

while True:
    schedule.run_pending()
    time.sleep(1)
    
 #这调用了一个名为schedule的对象的run_pending方法。这个方法通常用于检查并执行任何待处理的计划任务。具体的行为取决于schedule对象的实现,但通常它会查看当前时间与任务计划时间的差异,并决定是否现在应该运行该任务
使用装饰器执行任务

使用@repeat来安排函数。使用与上面相同的语法传递一个间隔,同时省略.do().

复制from schedule import every, repeat, run_pending
import time

@repeat(every(10).minutes)
def job():
    print("I am a scheduled job")

while True:
    run_pending()
    time.sleep(1)
参数传递给任务
复制import schedule

def greet(name):
    print('Hello', name)

schedule.every(2).seconds.do(greet, name='Alice')
schedule.every(4).seconds.do(greet, name='Bob')

from schedule import every, repeat

@repeat(every().second, "World")
@repeat(every().day, "Mars")
def hello(planet):
    print("Hello", planet)
取消任务
复制import schedule

def some_task():
    print('Hello world')

job = schedule.every().day.at('22:30').do(some_task)
schedule.cancel_job(job)
posted @   乐乐乐乐乐乐樂  阅读(148)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
历史上的今天:
2022-12-20 django基本流程
jQuery火箭图标返回顶部代码
点击右上角即可分享
微信分享提示