Как сохранить выполненные работы Quartz?

1

Одна из проблем, после выполнения заданий, quartz удаляет задания из таблицы qrtz_triggers базы данных, но в конкретной ситуации необходимо повторить выполненную работу.

Являются ли какие-либо параметры конфигурации или способ хранения заданий в другой таблице после выполнения?

благодаря

  • 0
    Если ваша работа не удалась, вы можете решить, сделать ли вашу работу восстанавливаемой или в вашей работе, после сбоя вы можете получить доступ к планировщику, чтобы перенести свою работу.
Теги:
quartz-scheduler
jboss

2 ответа

2
Лучший ответ

Если вы используете JDBCJobStore, ваши задания хранятся в таблице типа QRTZ_JOB_DETAILS, а ваши простые триггеры хранятся в QRTZ_SIMPLE_TRIGGERS, ваши QRTZ_SIMPLE_TRIGGERS cron хранятся в QRTZ_CRON_TRIGGERS, и все триггеры хранятся в QRTZ_TRIGGERS.

Если вы ожидаете, что ваша работа прочная и останется, когда триггеры не связаны с заданием, вы должны вызвать storeDurably(true) при создании JobDetail. Например:

JobDetail jobDetail = JobBuilder.newJob()
    .ofType(DataMapJob.class)
    .withIdentity("dataJob", "dataJobGroup")
    .storeDurably(true)
    .requestRecovery(true)
    .build();

Надеюсь, поможет.

  • 0
    спасибо, это было полезно
2

Это именно то, для чего нужен прочный флаг. Прочные задания остаются зарегистрированными в Quartz, даже если нет триггеров, связанных с работой. С другой стороны, задания, не связанные с длительностью, автоматически удаляются Quartz, где нет связанных триггеров (например, после того, как все связанные триггеры запущены и были удалены Quartz).

Для получения дополнительной информации вы можете обратиться к JobDetailImpl javadoc.

  • 0
    спасибо, это было полезно

Ещё вопросы

Сообщество Overcoder
Наверх
Меню