首先基于springboot项目;
在入口类上添加@EnableScheduling
考虑到并发问题,可以配置线程池,在入口类添加方法
//任务线程池 @Bean public TaskScheduler taskScheduler() { ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
//线程名字前缀 scheduler.setThreadNamePrefix("demo-task-thread");
//线程池大小 scheduler.setPoolSize(10); return scheduler; }
使用:
比如新建一个DemoTask.java
@Component
public class AddAbilityValTask {
//直接注入业务service或者mapper
@Autowired
private DemoMapper demaMapper;
@Scheduled(cron="0 1 0 ? * MON-FRI") //此处表示每周一到周五的0点1分执行
private void demoTask(){
//业务逻辑
.......
}
}
上边说道0点1分执行,为什么不写0点整执行,因为那样写不触发任务(汗!);
网上有好多自动生成cron表达式的,自行搜索就可以了!