springboot定时任务

Posted on 2019-08-16 14:56  写程序到老  阅读(212)  评论(0)    收藏  举报

springboot里做一个定时任务特别的简单

1:在启动文件里开启任务 @EnableScheduling

2:在方法上 设置定时时间@Scheduled(cron = "0/10 * * * * ?")

3:这样就会每十秒执行一次

默认的是单线程,就是一个任务没有执行完毕,下一个任务不会开始。

举个栗子:项目启动后等待10秒,定时任务开始执行,然后第二个10秒,然后第三个10秒。。。

如果第一个10秒 任务里的逻辑没有执行完毕,那么第二次进任务就是下一个定时任务时间,如:第一个定时任务执行15秒,那么

第二次进任务是在第30秒

 

4:也可以加上异步 @Async

这样的定时任务,每到一个执行间隔就会执行任务,不会去管上一次任务是否已经执行完毕

特别注意:根据业务逻辑需要 去判断要不要添加异步。在我们项目中,定时去更新库存信息,因为并发了 导致库存多次增减,

即使库存表有乐观锁,也没能避免这个错误。

 

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3