У меня есть код, запускаемый каждые две минуты с помощью аннотации @Scheduled. Однако наши рабочие места имеют тенденцию работать в течение более длительных периодов времени. Как я понимаю, аннотация @Scheduled ставит в очередь новые задания и запускает их сразу же после завершения первого задания. Я не хочу, чтобы это произошло. Я хочу, чтобы в нем было всего 1 экземпляр выполняемой работы и не было экземпляров в очереди. Как я могу это сделать?Как остановить Spring @Scheduled из очередей заданий
@Scheduled(cron = "0 */2 * * * ?")
public void twoMinMethod() {
// code here
}
Ну, это зависит. Если у вас есть TaskExecutor с несколькими потоками, и есть свободные потоки, у вас есть несколько одновременных исполнений. Пока не закончится пул, на основе выбранной стратегии задания будут поставлены в очередь, отброшены или вы получите исключение. Так что на самом деле это зависит. Если вам нужен один экземпляр, вам нужно использовать планировщик, такой как кварц, который обеспечивает поддержку этого. –