springboot的spring-task定时任务使用

首先基于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表达式的,自行搜索就可以了!

 

你可能感兴趣的:(springboot,java)