Полагаю, вы используете @Scheduled(fixedRate = 60000)
В этом случае вам не нужно беспокоиться о возможном перекрытии задач, поскольку они выполняются последовательно в одном потоке.
ScheduledAnnotationBeanPostProcessor
использует ScheduledTaskRegistrar
под капотом, который, в свою очередь, использует ScheduledExecutorService
(см. документы и исходный код ).
А из Документы из scheduleAtFixedRate
метод ScheduledExecutorService
, мы можем ясно видеть, что
Если какое-либо выполнение этой задачи занимает больше времени, чем ее период, то последующие выполнения могут начаться поздно, но будут не выполняется одновременно.