SpringBoot 定时任务

SpringBoot 定时任务

前言

Spring为我们提供了异步执行任务调度的方式,提供TaskExecutor、TaskScheduler接口,spring boot作为对spring功能的整合,提供了两个注解:@EnableScheduling、@Scheduled 既可简单的实现任务调度功能。

注解介绍

1.@EnableScheduling

类注解,添加到项目主类上,标志启动注解

2.@Scheduled

方法注解,设置调度规则

(1). cron 表达式与 zone
zone:表示将解析cron表达式的时区。 
关于 cron 表达式,参考Spring Quartz 实现多任务定时调用 里面的附录。
(2). fixedRate 或fixedRateString的解释
调用固定周期(以毫秒为单位)执行方法。就是上一次开始执行时间点之后延迟执行。
(3). fixedDelay 或fixedDelayString的解释
上次调用结束和下一次调用结束之间的固定周期(以毫秒为单位)执行方法。就是上一次执行完毕时间点之后延迟执行。
(4). initialDelay 或initialDelayString 的解释

在第一次执行fixedRate或fixedDelay任务之前延迟(以毫秒为单位)。

注意点:

  • String和无String的区别是值为String和Long类型
  • (4)必须配合(2)|(3)使用
  • (1),(2),(3) 只能存在一个

实现

1.启动定时任务的配置-@EnableScheduling

@SpringBootApplication
@EnableScheduling
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

2.创建定时任务组件实现定时任务

@Component
public class SchedulerTask {

    private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");

    @Scheduled(cron="*/6 * * * * ?")
    private void process(){
    	//实现业务
        System.out.println("this is scheduler task runing  "+dateFormat.format(new Date()));
    }
    
    @Scheduled(fixedDelay =2000)
    public void process1()
    {
        //实现业务
	System.out.println("延迟:" + dateFormat.format(new Date()));  	
    }
	  
    @Scheduled(fixedDelayString ="3000")
    public void process2()
    {
	//实现业务
	System.out.println("延迟2:" + dateFormat.format(new Date()));
	  	
    }
    
    @Scheduled(initialDelay = 5000, fixedRateString = "5000")
    public void process3()
    {
    	//实现业务
    	System.out.println("rate23:" + dateFormat.format(new Date()));
    	
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值