启动类Application
在启动类上增加注解:@EnableScheduling
@EnableCaching
@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)
//在这里增加注解
@EnableScheduling
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
定时任务
编写定时任务,在定时方法前增加**@Scheduled**注解,fixedDelay = 3600000含义是每3600s执行一次任务。
使用@PostConstruct注解,可以让任务在项目启动的时候执行一起。
@Component
@Slf4j
public class SendNotice {
private static final Logger LOGGER = LoggerFactory.getLogger(SendNotice.class);
private ICheckItemService iCheckItemService;
@Scheduled(initialDelay = 4000, fixedDelay =3600000)
@PostConstruct
public void sendNotice(){
LOGGER.info("发送通知信息");
iCheckItemService.send();
}
@Autowired
public void setiCheckItemService(ICheckItemService iCheckItemService){
this.iCheckItemService = iCheckItemService;
}
}
线程池配置类
增加配置类,不增加该类会出现线程池报错。
@Configuration
public class ScheduledConfig {
@Bean
public TaskScheduler taskScheduler() {
ThreadPoolTaskScheduler scheduling = new ThreadPoolTaskScheduler();
scheduling.setPoolSize(10);
scheduling.initialize();
return scheduling;
}
}