2012-06-25 3 views
6

Я не очень хорошо знаком с Java Quartz, мы просто использовали тестовое задание, которое запланировано ежедневно. Для нашего веб-приложения Struts2 мы хотим запустить несколько ежедневных заданий, которые запланированы в разное время суток. Рабочие места должны быть в состоянии сохранения, так что даже если задания не выполняются из-за сбоя сервера или приложения, они должны повторно выполнить позже, когда сервер завершен. Также я могу сохранить статус/результаты заданий в БД, чтобы отслеживать задания. Любые предложения будут полезны.JavaQuartz Постоянство работы

- Благодаря

+0

Я считаю, что кварц обладает всеми этими функциями. Он может, безусловно, использовать постоянное хранилище заданий. – Thilo

ответ

6

Все, что вы упомянули возможно в Quartz планировщик и уже есть функция с триггерами, которые мы обычно называем Misfire Instructions это то, что док сказать об этом

Другим важным свойством триггера является его «инструкция осечка ». Пропуски пропуска возникают, если постоянный триггер «пропускает» время срабатывания из-за отключения планировщика или из-за отсутствия доступных потоков в пуле потоков Quartz для выполнения задания. Различные типы триггеров имеют разные инструкции о пропусках. По умолчанию они используют команду «умная политика», которая имеет динамическое поведение, основанное на типе и конфигурации триггера. Когда планировщик запускается, он ищет любые постоянные триггеры, которые пропущены, и затем обновляет каждый из них на основе их индивидуально настроенных инструкций о пропусках. Когда вы начинаете использовать Quartz в своих собственных проектах, вы должны ознакомиться с инструкциями по пропускам, которые определены в данных типах триггеров, и объяснены в их JavaDoc. Более подробная информация о инструкциях по пропускам пропускается в уроках уроков, характерных для каждого типа триггера.

Что касается работы живучесть Кварц поставляется с несколькими сборки в механизме и все, что вам нужно установить JobStore в JDBCJobStore

Я предлагаю вам пойти с Quartz scheduler document его довольно легко и иметь много учебник и примеры, чтобы начать с.

Если вы не используете Spring в своем приложении, вам не нужно добавлять дополнительный уровень абстракции и зависимостей.

+0

После просмотра документов я нашел, что jobStore отвечает за отслеживание всех «рабочих данных», которые вы даете планировщику: задания, триггеры, календари и т. Д. Возможно ли сохранить состояние «Работа» в jobStore, т. Е. , статус результата/выполнения. –

+0

вы также сможете получить информацию –

+0

Любой конкретный урок №. в документации, где я могу найти информацию о поиске состояния задания задания планировщика. –

1

Мы Job stores АФИ в Java Quartz. Это сохранит данные в базах данных об информации Job. Поэтому я думаю, это поможет вам. Вы можете проверить this link, чтобы получить представление о структуре кода и БД.

2

Вы можете использовать кварц в сочетании с Sprig batch.

Первый содержит API для управления различными потоками (как можно сложнее), постоянное хранение состояния задания и api для мониторинга и повторного запуска заданий в соответствии с их статусом выполнения. Другая удобная библиотека - Spring Batch admin. У этого есть веб-консоль и 5 минут руководства.

Кварц используется как постоянное состояние задания планировщика, обрабатывается весной. Он может работать как автономное приложение Java, а также в контейнере для веб-приложений (для меня Tomcat было достаточно).

Удачи вам!

+0

Для использования Spring Batch Admin, нужно ли использовать фреймворк Spring в моем существующем веб-приложении Struts2 –

+0

да, он вам понадобится. – aviad

+0

Хорошо, спасибо за ваши предложения. –

Смежные вопросы