#java #spring #quartz-scheduler
#java #весна #quartz-планировщик
Вопрос:
У меня есть несколько триггеров quartz, настроенных в моем XML-файле, который работает уже некоторое время. ежедневный запуск еженедельный запуск и ежемесячный запуск
Но теперь я добавил четвертый, и я не получаю 4-й триггер, который я добавил для запуска со всеми триггерами в XML-файле. Но если он сам по себе, он срабатывает каждый раз. Я также вижу срабатывание триггера, даже если я не определил его в файле xml, поэтому мне было интересно, откуда еще Quartz получает свои триггеры?
Комментарии:
1. Что касается триггера, который срабатывает, но которого нет в вашем XML. Если вы настроили Quartz на использование хранилища заданий JDBC, то вам необходимо удалить триггер из хранилища заданий вручную с помощью SQL-запроса. Вот как работает Quartz — он не синхронизирует текущий список триггеров (в вашем случае определенный в файле XML) с БД. Это потому, что БД может содержать триггеры, которые были добавлены программно и т.д. Что мы делаем в наших приложениях Spring, так это то, что при каждом запуске приложения мы удаляем все задания и триггеры из базы данных Quartz и позволяем приложению загружать текущий список заданий и триггеров.
2. Январь — звучит здорово, и у нас есть хранилище вакансий JDBC, которое я теперь нашел, спасибо за это. Я также хотел бы добавить, что я не запускал все триггеры, потому что у нас есть 2 отдельные системы, работающие с одной и той же базой данных, и Quartz из другой системы получил триггер, поэтому моя система не распознала его, она думала, что он уже выполняется, так как мы также установили его какраспределенная система.
Ответ №1:
ответ заключается в том, что это зависит от конфигурации quartz, мы настроили на использование хранилища заданий JDBC, это считывает xml и помещает триггеры в базу данных, если их там еще нет. затем, если они изменяются в базе данных, триггер изменяется в quartz, поэтому именно то, что находится в базе данных, определяет, что будет срабатывать.