Я запланировал задания кварца, используя весенний контекст приложения для запуска каждую ночь. Теперь я хочу изменить задание cron для уже запущенного приложения, так что он запускается через час. Мы хотим изменить задание cron в контексте приложения, а затем перезапустить приложение, чтобы изменения вступили в силу. У нас нет доступа к базе данных по соображениям безопасности.Загрузка задания Quartz cron из контекста приложения Springs каждый раз
Я использую CronTriggerBean
, чтобы запустить jobDetail, а также предоставить выражение cron. Теперь, если я изменяю выражение cron и перезапускаю приложение, оно не обновляет фактическое выражение cron, потому что оно хранится в базе данных.
Как я могу убедиться, что выражение cron обновляется каждый раз, когда я перезапускаю приложение?
Редактировать: Кварц берет выражение cron из контекста приложения и сохраняет его внутри базы данных. После перезапуска приложения с новым выражением cron он не обновляет значение в базе данных и продолжает использовать старое выражение.
Мы загружаем выражение cron из JNDI, из которого мы создаем bean-компонент, который мы ссылаемся в CronTriggerBean defenition. (отредактируйте нажатый ввод до начала) – Stijnvdk
, тогда я не понимаю ваш вопрос, вы получаете выражение cron от jndi, тогда что вы имеете в виду «он не обновляет фактическое выражение cron, потому что он хранится в базе данных». если вы измените значение jdni для cron и перезапустите сервер, при перезапуске контекст приложения будет обновлен. –
Это именно то, что я имею в виду. Кварц считывает выражение cron из контекста приложения и сохраняет его в базе данных. После перезапуска он не обновляет значение в базе данных с новым значением из контекста приложения. Изменит мой оригинальный пост, чтобы отразить это лучше – Stijnvdk