spring boot 开启定时任务的三种方式( 二 )


spring boot 开启定时任务的三种方式

文章插图
然后打开  , 将执行周期修改为每6秒执行一次 , 如图:
查看控制台 , 发现执行周期已经改变 , 并且不需要我们重启应用 , 十分方便 。如图:
注意:如果在数据库修改时格式出现错误 , 则定时任务会停止 , 即使重新修改正确;此时只能重新启动项目才能恢复 。
回到顶部
三、多线程定时任务
基于注解设定多线程定时任务
1、创建多线程定时任务
//@Component注解用于对那些比较中立的类进行注释;//相对与在持久层、业务层和控制层分别采用 @Repository、@Service 和 @Controller 对分层中的类进行注释@Component@EnableScheduling// 1.开启定时任务@EnableAsync// 2.开启多线程public class MultithreadScheduleTask {@Async@Scheduled(fixedDelay = 1000)//间隔1秒public void first() throws InterruptedException {System.out.println("第一个定时任务开始 : " + LocalDateTime.now().toLocalTime() + "\r\n线程 : " + Thread.currentThread().getName());System.out.println();Thread.sleep(1000 * 10);}@Async@Scheduled(fixedDelay = 2000)public void second() {System.out.println("第二个定时任务开始 : " + LocalDateTime.now().toLocalTime() + "\r\n线程 : " + Thread.currentThread().getName());System.out.println();}}
2、启动测试
启动应用后 , 查看控制台:
从控制台可以看出 , 第一个定时任务和第二个定时任务互不影响;
【spring boot 开启定时任务的三种方式】并且 , 由于开启了多线程 , 第一个任务的执行时间也不受其本身执行时间的限制 , 所以需要注意可能会出现重复操作导致数据异常 。