Что нового

Пропущенные задачи

winkot

Новичок
Сообщения
190
Репутация
0
Пытаюсь сделать скрипт для запуска задач по датам, ежемесячно. Здесь проблем нет. Но компьютер включен не всегда и могут быть ситуации, когда запуск задачи будет пропущен. Например, в этот день компьютер не включался и задача не выполнялась. По ккому принципу отслеживать эти пропущенные задачи?
 

Oki

Продвинутый
Сообщения
452
Репутация
63
Вести лог выполненных задач. Если нужный момент запуска наступил, а в логе задача отсутствует, то понятно, что делать. При этом лог можно чистить от совсем уж неактуальных записей.
 

Prog

Продвинутый
Сообщения
597
Репутация
77
Нужно хранить в файле время предыдущего выполнения задачи и сравнивать с текущим временем. Если прошло больше чем заданно - выполнить задачу и сохранить текущее время, которое станет предыдущим для последующих проверок.
 

Oki

Продвинутый
Сообщения
452
Репутация
63
Нужно хранить в файле время предыдущего выполнения задачи и сравнивать с текущим временем. Если прошло больше чем заданно - выполнить задачу и сохранить текущее время, которое станет предыдущим для последующих проверок.
Мне тоже так хотелось сначала ответить, но из вопроса топикстартера неясно, все ли задачи периодические. Если есть одноразовые задачи, то нужен лог, в котором они бы отображались. Да и вообще, даже для периодических задач существует момент, когда они ещё не выполнились даже по разу, поэтому требуются либо какие-то записи, либо расширенный формат, в котором "время предыдущего запуска" должно включать вариант "пока ещё ни разу". В любом случае главная идея - хранить информацию о выполнениях в файле. Желательно рассмотреть ситуацию, когда задача прерывается по какой-либо причине, сохраняя информацию не только о факте запуска, но и факте окончания выполнения задачи.
 

Prog

Продвинутый
Сообщения
597
Репутация
77
все ли задачи периодические.
Если нужно что-то похожее на планировщик задач винды, в файле кроме времени предыдущего выполнения нужно хранить остальную необходимую информацию.

Да и вообще, даже для периодических задач существует момент, когда они ещё не выполнились даже по разу,
При создании задачи, сохраняется текущее время, от которого будет вестись отсчет.
 

IMStrelcov

CTPEJIbLLOB
Сообщения
259
Репутация
66
Задачи будут выполняться поочередно:
Задача 1 выполнить 10 числа,
Задача 2 выполнить 12 числа,
Задача 3 выполнить 17 числа,

И так, допустим:
скрипт выполнил задачу номер один 10.01.2022 числа,
и запомнил/записал в файл номер задачи, и дату последнего запуска 10.01.2022
т.е. задача 1 10.02.2022

После скрипт запустили 15.02.2022 числа,
скрипт считывает номер задачи который был выполнен и дату
и от этого отталкиваться какая задача не выполнилась:
это будет:
задача 2 (за 12.01.2022),
задача 3 (за 17.01.2022),
задача 1 (за 10.02.2022),
задача 2 (за 12.02.2022)

Так же можно манипулировать и временем и номером подзадачи и т.д. и т.п.
 
Верх