springboot里作一个定时任务特别的简单spring
1:在启动文件里开启任务 @EnableSchedulingspringboot
2:在方法上 设置定时时间@Scheduled(cron = "0/10 * * * * ?")并发
3:这样就会每十秒执行一次异步
默认的是单线程,就是一个任务没有执行完毕,下一个任务不会开始。线程
举个栗子:项目启动后等待10秒,定时任务开始执行,而后第二个10秒,而后第三个10秒。。。blog
若是第一个10秒 任务里的逻辑没有执行完毕,那么第二次进任务就是下一个定时任务时间,如:第一个定时任务执行15秒,那么定时任务
第二次进任务是在第30秒方法
4:也能够加上异步 @Asyncim
这样的定时任务,每到一个执行间隔就会执行任务,不会去管上一次任务是否已经执行完毕d3
特别注意:根据业务逻辑须要 去判断要不要添加异步。在咱们项目中,定时去更新库存信息,由于并发了 致使库存屡次增减,
即便库存表有乐观锁,也没能避免这个错误。