一、新建配置類,配置TaskScheduler
@Configuration public class ThreadAConfigurer { @Bean("taskScheduler") public TaskScheduler taskScheduler() { ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler(); taskScheduler.setThreadNamePrefix("autoTask"); taskScheduler.setPoolSize(10); return taskScheduler; } }
二、配置定時任務
由於Thread的內注入service為空,所以以參數形式傳入到AutoSpThread類 ,taskRegistrar.addCronTask() 第二個參數配置定時啟動任務的日期
@Component @Configuration public class AutoSpTask implements SchedulingConfigurer { @Autowired GlobalServiceConfig globalServiceConfig; @Autowired AutoSpService autoSpService; @Autowired TaskScheduler taskScheduler; private static final Logger LOG = LoggerFactory.getLogger(AutoSplitTask.class); @Override public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { taskRegistrar.setTaskScheduler(taskScheduler); String tPath = globalServiceConfig.getTiPath(); String dateStr = DateUtils.formatDate(new Date()); LOG.info("掃描定時任務"); taskRegistrar.addCronTask( new AutoSpThread(autoSplitService, dateStr, tPath), globalServiceConfig.getAutoSTaskCron()); } }