Запуск планировщика заданий между двумя разными временами
Я пытаюсь запустить печать даты / времени каждые 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