schedule.ScheduleValueError: Invalid time format for a minutely job

import schedule
import time

def job():
    print('start for job')
schedule.every().minute.at(':4').do(job)
while True:
    schedule.run_pending()
    print('wait')
    time.sleep(1)

报错:raise ScheduleValueError((‘Invalid time format for’
schedule.ScheduleValueError: Invalid time format for a minutely job

排查思路:

  1. 查看at的函数描述,结果发现以下内容:
    param time_str: A string in one of the following formats: HH:MM:SS,
    HH:MM,:MM, :SS. The format must make sense given how often
    the job is repeating; for example, a job that repeats every minute
    should not be given a string in the form HH:MM:SS. The difference
    between :MM and :SS is inferred from the selected time-unit
    (e.g. every().hour.at(':30') vs. every().minute.at(':30')).
    :return: The invoked job instance
    所以,at()里时间字符串的格式为: ‘:SS’
    2.尝试:
import schedule
import time

def job():
    print('start for job')
schedule.every().minute.at(':04').do(job)
while True:
    schedule.run_pending()
    print('wait')
    time.sleep(1)

结果,OK

总结:
时间的字符串格式为 HH:MM:SS,HH:MM,:MM, :SS.

更多推荐

schedule.ScheduleValueError: Invalid time format for a minutely job 已解决