通过IF语句将Python与Schedule库一起使用

时间:2019-01-30 23:17:05

标签: python if-statement schedule

希望为计划python脚本提供一些帮助。我了解语法,但是由于添加了IF语句逻辑,因此我无法使脚本连续运行两天。第二天早上,它要么只运行日常工作,要么完全跳过它,仅运行15分钟的工作。我需要if逻辑,以便作业仅在工作日运行。有没有人提供修复或巧妙的解决方法,使其仅在工作日内运行?

感谢您的帮助。我在下面提供了代码的简化版本:

import schedule
import time

def daily_job(text):
    print(text)

def fifteen_min_job():
    print('15 minute job...')

if True: # For example only run on weekdays
    schedule.every().day.at("09:32").do(daily_job, text='daily job...')
    schedule.every(15).minutes.do(fifteen_min_job)

while True:
    schedule.run_pending()
    time.sleep(1)

1 个答案:

答案 0 :(得分:2)

使用以下语句代替使用IF语句:

schedule.every(15).minutes.do(fifteen_min_job)
schedule.every().monday.at("09:32").do(daily_job, text='daily job...')
schedule.every().tuesday.at("09:32").do(daily_job, text='daily job...')
schedule.every().wednesday.at("09:32").do(daily_job, text='daily job...')
schedule.every().thursday.at("09:32").do(daily_job, text='daily job...')
schedule.every().friday.at("09:32").do(daily_job, text='daily job...')

从长远来看,此方法更稳定!

要在工作日同时执行15分钟的工作,只需执行以下操作:

def weekdayJob:
    schedule.every(15).minutes.do(fifteen_min_job).tag("fifteen")

def clearJob:
    schedule.clear("fifteen")

schedule.every().monday.at("00:00").do(weekdayJob)
schedule.every().saturday.at("00:00").do(clearJob)