schedule python запуск в конкретные минуты каждого часа

Рейтинг: 0Ответов: 1Опубликовано: 24.01.2023

Всем привет, есть задача запускать задачу несколько раз в час. Например в 0, 15, 45 минут, или же в 0, 15, 30, 45. Понятное дело что можно сделать запуск таски каждые 15 минут

every(15).minutes.do

Но такое выражение мне не подходит, потому что таска должна запускаться ровно в n минут.

Ответы

▲ 1Принят

В первом примере в документации есть такая строка:

schedule.every().minute.at(":17").do(job)

Что означает "выполнять каждую минуту в 17 секунд". Аналогично можно задать для часа, например:

# Выполнять каждый час в 15 минут
schedule.every().hour.at(":15").do(job)
# Если запускать из интерактивного режима Python, то выведет:
# Every 1 hour at 00:15:00 do job() (last run: [never], next run: 2023-01-24 12:15:00)

Нужно таким образом задать время запуска для 0 минут, 15 минут, 30 минут, 45 минут:

import schedule


def job():
    print("I'm working...")


schedule.every().hour.at(":00").do(job)
schedule.every().hour.at(":15").do(job)
schedule.every().hour.at(":30").do(job)
schedule.every().hour.at(":45").do(job)

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