Я хотел бы сохранить историю заданий, запланированных планировщиком Quartz, который содержит следующие свойства: «время начала», «время окончания», «успех», «ошибка» ».Как сохранить историю заданий с помощью планировщика Quartz
Имеются два интерфейса: ITriggerListener
и IJobListener
(Я использую соглашение об именах C# для интерфейсов, потому что я использую Quartz.NET, но тот же вопрос можно задать для версии Java).
IJobListener
имеет JobToBeExecuted
и метод JobWasExecuted
. Последний дает JobExecutionException
, так что вы знаете, когда что-то пошло не так. Однако нет возможности сопоставить JobToBeExecuted
и JobWasExecuted
. Предположим, моя работа длится десять минут. Я начинаю его с t0
и t0+2
(поэтому они перекрываются). Я получаю два звонка до JobToBeExecuted
и вставляю два стартовых раза в свою таблицу истории. Когда оба задания заканчиваются на t1
и t1+2
, я получаю два звонка до JobWasExecuted
. Как узнать, какая запись базы данных обновляется в каждом вызове (чтобы сохранить время окончания с соответствующим временем начала)?
ITriggerListener
есть еще одна проблема. Невозможно получить ошибки внутри метода TriggerComplete
, когда работа завершилась неудачно.
Как мне получить желаемое поведение?
У вас есть какие-либо идеи, где я мог бы найти такие ключ? –
В настоящее время ключевым является JobGroup, JobName и дата и время. Похоже, что в выпуске 2.0 появился лучший ключ. –