spring 定时任务@Scheduled ,默认一个进程里,所有的@Scheduled 定时任务都在同一个线程中运行。即单线程模式
若要修改为多线程模式,需要加一个配置,如下:
@Configuration
public class ScheduleConfig implements SchedulingConfigurer {
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
AtomicInteger autoCount = new AtomicInteger(1);
ScheduledThreadPoolExecutor scheduledExecutorService = new ScheduledThreadPoolExecutor(10
, runnable -> new Thread(runnable, "schedule-task-" + autoCount.getAndIncrement()));
scheduledExecutorService.setMaximumPoolSize(10);
taskRegistrar.setScheduler(scheduledExecutorService);
}
}