Я пытаюсь разработать TSQL, чтобы определить, не превысило ли задание задание и не пропустило ли его следующее расписание.
Сценарий: Задание запланировано для запуска каждый час (может быть включено более одного расписания), но по какой-то причине, например из-за сетевых задержек, задание перестает выполняться через 10 минут и теперь выполняется в течение 90 минут, поэтому отсутствует его почасовой запуск.
Существует таблица с именем msdb.dbo.sysjobactivity, в которой есть столбец с именем next_scheduled_run_date, но эта дата обновляется только после завершения текущего задания. Это то же поведение, что и монитор активности заданий, дата следующего запуска обновляется только после завершения текущего задания.
msdb.dbo.sysjobactivity обновляется в соответствии с подробностями в: https://dba.stackexchange.com/questions/22644/how-and-when-does-sql-agent-update-next-run-значениядаты-следующего-времени-выполнения
Вопрос. Как рассчитать следующий запланированный запуск задания на основе текущего времени запуска задания во время его выполнения. Может быть назначено более одного расписания.
Любые указатели приветствуются.