使用Python和带有IF语句的调度库

使用Python和带有IF语句的调度库,python,if-statement,schedule,Python,If Statement,Schedule,希望能对计划python脚本有所帮助。我理解语法,但由于我添加了IF语句逻辑,所以无法让脚本连续运行两天。第二天早上,它要么只运行每日作业,要么完全跳过它,只运行15分钟的作业。我需要if逻辑,以便作业只在工作日运行。是否有人有一个补丁或一个聪明的变通方法,让它在工作日运行 谢谢你的帮助。我在下面包含了我的代码的简化版本: import schedule import time def daily_job(text): print(text) def fifteen_min_job(

希望能对计划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)

不要使用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)

啊,那可能稳定多了,谢谢!但是,如果我想让15分钟的工作也只在工作日进行,或者在这种情况下,只在股市开放时进行,该怎么办?有没有办法继续使用逻辑?如果你想这样做,只需将15分钟的作业调度程序放入一个函数中,在工作日再创建5个调度程序,只运行15分钟的调度程序,然后在周末再创建两个调度程序,取消15分钟的调度程序。有道理?