Все, что вы упомянули возможно в Quartz планировщик и уже есть функция с триггерами, которые мы обычно называем Misfire Instructions
это то, что док сказать об этом
Другим важным свойством триггера является его «инструкция осечка ». Пропуски пропуска возникают, если постоянный триггер «пропускает» время срабатывания из-за отключения планировщика или из-за отсутствия доступных потоков в пуле потоков Quartz для выполнения задания. Различные типы триггеров имеют разные инструкции о пропусках. По умолчанию они используют команду «умная политика», которая имеет динамическое поведение, основанное на типе и конфигурации триггера. Когда планировщик запускается, он ищет любые постоянные триггеры, которые пропущены, и затем обновляет каждый из них на основе их индивидуально настроенных инструкций о пропусках. Когда вы начинаете использовать Quartz в своих собственных проектах, вы должны ознакомиться с инструкциями по пропускам, которые определены в данных типах триггеров, и объяснены в их JavaDoc. Более подробная информация о инструкциях по пропускам пропускается в уроках уроков, характерных для каждого типа триггера.
Что касается работы живучесть Кварц поставляется с несколькими сборки в механизме и все, что вам нужно установить JobStore в JDBCJobStore
Я предлагаю вам пойти с Quartz scheduler document его довольно легко и иметь много учебник и примеры, чтобы начать с.
Если вы не используете Spring в своем приложении, вам не нужно добавлять дополнительный уровень абстракции и зависимостей.
Я считаю, что кварц обладает всеми этими функциями. Он может, безусловно, использовать постоянное хранилище заданий. – Thilo