Spring Boot:定时任务

在我们开发项目过程中,经常需要定时任务来帮助我们来做一些内容, Spring Boot 默认已经帮我们实行了,只需要添加相应的注解就可以实现。

一.Spring Boot 定时任务在项目中的使用

1.pom 包配置

pom 包里面只需要引入 Spring Boot Starter 包即可:

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>
2.启动类启用定时

在启动类上面加上 @EnableScheduling 即可开启定时:

	@SpringBootApplication
	@EnableScheduling
	public class Application {
	
		public static void main(String[] args) {
			SpringApplication.run(Application.class, args);
		}
	}
3.创建定时任务实现类

定时任务1:

	@Component
	public class SchedulerTask {
	
	    private int count=0;
	
	    @Scheduled(cron="*/6 * * * * ?")
	    private void process(){
	        System.out.println("this is scheduler task runing  "+(count++));
	    }
	}

定时任务2:

	@Component
	public class Scheduler2Task {
	
	    private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
	
	    @Scheduled(fixedRate = 6000)
	    public void reportCurrentTime() {
	        System.out.println("现在时间:" + dateFormat.format(new Date()));
	    }
	}

结果如下:

	this is scheduler task runing  0
	现在时间:09:44:17
	this is scheduler task runing  1
	现在时间:09:44:23
	this is scheduler task runing  2
	现在时间:09:44:29
	this is scheduler task runing  3
	现在时间:09:44:35

二.参数说明

@Scheduled 参数可以接受两种定时的设置,一种是我们常用的cron="*/6 * * * * ?",一种是 fixedRate = 6000,两种都表示每隔六秒打印一下内容。
fixedRate 说明

  • @Scheduled(fixedRate = 6000) :上一次开始执行时间点之后6秒再执行。
  • @Scheduled(fixedDelay = 6000) :上一次执行完毕时间点之后6秒再执行。
  • @Scheduled(initialDelay=1000, fixedRate=6000) :第一次延迟1秒后执行,之后按 fixedRate 的规则每6秒执行一次。

参考文章:http://www.ityouknow.com/springboot/2016/12/02/spring-boot-scheduler.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值