Запуск планировщика заданий между двумя разными временами

Я пытаюсь запустить печать даты / времени каждые 5 секунд между x и y.

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

import schedule
import time
from datetime import datetime

schedule.clear()

def job():
    print(datetime.now())

schedule.every(5).seconds.do(job)

while 1:
    if datetime.now()>=datetime(2017,12,31,1,49) :
        schedule.run_pending()
        time.sleep(1)

В документации приведен пример отмены нескольких заданий. Но я не смог этого сделать

Я ищу что-то, что начинается в 9:00 каждое утро и заканчивается в 3 часа дня.

1 ответ

Решение

Там в schedule.cancel_job() который берет ссылку на ранее созданную работу. Или там просто schedule.clear() который удаляет все вакансии.

import schedule
import time
from datetime import datetime, timedelta

schedule.clear()

def job():
    print(datetime.now())

j = schedule.every(1).seconds.do(job)

start = datetime.now()
end = start + timedelta(seconds=5)

while True:
    schedule.run_pending()
    time.sleep(1)
    if datetime.now() > end:
        print('cancelling job')
        schedule.cancel_job(j)
        break

print(schedule.jobs) # shows empty list, as they are no open jobs
time.sleep(5) # just to double check that it does no longer trigger
Другие вопросы по тегам