小编这次要给大家分享的是SpringBoot如何执行定时任务@Scheduled,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。
在做项目时,需要一个定时任务来接收数据存入数据库,后端再写一个接口来提供该该数据的最新的那一条。
数据保持最新:设计字段sign的值(0,1)来设定是否最新
定时任务插入数据:首先进行更新,将所有为1即新数据设置过期,然后插入新数据,设置sign为1。这两个操作是原子操作。通过添加事务来进行控制。
Java 定时任务的几种实现方式
Spring 提供的一个注解: @Schedule,开发简单,使用比较方便,也是本文介绍的一种方式
Spring 自身提供了对定时任务的支持,本文将介绍 Spring Boot 中 @Scheduled 定时器的使用。
创建定时任务
首先,在项目启动类上添加@EnableScheduling
注解,开启对定时任务的支持
@SpringBootApplication @EnableScheduling public class ScheduledApplication { public static void main(String[] args) { SpringApplication.run(ScheduledApplication.class, args); } }
其中 @EnableScheduling
注解的作用是发现注解@Scheduled
的任务并后台执行。
其次,编写定时任务类和方法,定时任务类通过Spring IOC 加载
,使用@Component
注解,定时方法使用@Scheduled
注解。
@Component public class ScheduledTask { @Scheduled(fixedRate = 3000) public void scheduledTask() { System.out.println("任务执行时间:" + LocalDateTime.now()); } }
fixedRate 是 long 类型,表示任务执行的间隔毫秒数,以上代码中的定时任务每 3 秒执行一次。
@Scheduled详解
在上面的入门例子中,使用了@Scheduled(fixedRate = 3000) 注解来定义每过 3 秒执行的任务,对于 @Scheduled 的使用可以总结如下几种方式:
其中,常用的cron表达式有:
看完这篇关于SpringBoot如何执行定时任务@Scheduled的文章,如果觉得文章内容写得不错的话,可以把它分享出去给更多人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。