Использование Python с библиотекой Schedule с оператором IF - PullRequest
0 голосов
/ 31 января 2019

Надеемся на некоторую помощь в планировании скрипта Python.Я понимаю синтаксис, но так как я добавил логику оператора IF, я не могу запустить скрипт два дня подряд.На следующее утро он либо только запускает ежедневную работу, либо пропускает ее полностью и выполняет только пятнадцатиминутную работу.Мне нужна логика 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 голосов
/ 31 января 2019

Вместо использования оператора 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...