springboot定时任务

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

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

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

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

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

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

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

第二次进任务是在第30秒

4:也可以加上异步 @Async

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

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

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

找到那个感觉 就算打开了那个脑洞

本文来自博客园,作者:xiao~xiao,转载请注明原文链接:https://www.cnblogs.com/angin-iit/p/11363920.html

原文地址:https://www.cnblogs.com/angin-iit/p/11363920.html