У меня есть задание @Scheduled
в моем приложении, которое настраивается с помощью CRON
и запускается каждые 4 часа. Проблема, с которой я сталкиваюсь, заключается в том, что задание CRON
начинается не сразу после запуска приложения, но начинается через 4 часа после запуска приложения.Spring Запланированная задача не запускается при запуске приложения
Я попытался использовать метод @PostConstruct
внутри задачи, чтобы вызвать его, но это приводит к ошибке из-за неинициализированного контекста Spring.
Пожалуйста, расскажите, как я могу запустить Запланированную задачу сразу после развертывания приложения, а затем через каждые 4 часа после развертывания.
EDIT:
Я бы не стал использовать @PostConstruct
, так как мой запланирован метод зависит от других Бобы, которые не инициализированы, когда этот метод PostConstruct работает по какой-то причине.
Возможный дубликат [Выполнить метод при запуске весной] (http://stackoverflow.com/questions/2401489/execute-method-on-startup-in-spring) – aUserHimself
Я пробовал '@ PostContruct', но он всегда бросал Не удалось загрузить исключение контекста приложения – v1shnu
Почему бы не использовать два запланированных метода, один из которых вызывает бизнес-код при запуске с фиксированным далеком Long.maxValue, а другой с аннотацией cron, чтобы вызывать его регулярно каждые 4 часа? Вы должны были бы разложить свой бизнес-код на отдельный метод. – user152468