java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringBoot执行定时任务@Scheduled

SpringBoot执行定时任务@Scheduled的方法

作者:返回主页 胖墩哥

这篇文章主要介绍了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表达式有:

总结

本文主要介绍了基于 Spring Boot 内置的定时任务的配置使用,主要涉及两个注解,四个属性的配置:

主程序入口 @EnableScheduling 开启定时任务定时方法上 @Scheduled 设置定时cron属性:按cron规则执行fixedRate 属性:以固定速率执行fixedDelay 属性:上次执行完毕后延迟再执行initialDelay 属性:第一次延时执行,第一次执行完毕后延迟后再次执行

到此这篇关于SpringBoot执行定时任务@Scheduled的文章就介绍到这了,更多相关SpringBoot执行定时任务@Scheduled内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文