首页 > 解决方案 > 明天使用调度库运行一次作业

问题描述

schedule.wednesday.at("13:15").do(job)

使用此代码,我可以在星期三 13:15 运行函数。但我想做这样的动作,“第二天早上'10:00'运行函数”怎么做?

标签: pythonschedule

解决方案


job行返回schedule.CancelJob,使其只运行一次。然后安排它在每天 10:00 运行。

def job_once():
    job()
    return schedule.CancelJob

schedule.every().day.at('10:00').do(job_once)

警告:如果当前时间在 10:00 之前,则作业将在当天10:00 运行。没有办法在schedule库中定义初始延迟 - 但我们可以获得第二天的名称并在这一天安排。

import datetime
tomorrow = (datetime.datetime.now() + datetime.timedelta(days=1)).strftime('%A').lower()
getattr(schedule.every(), tomorrow).at('10:00').do(job_once)

推荐阅读