首页 > 代码库 > springBoot(19):定时任务
springBoot(19):定时任务
一、依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency>
二、实现
启动类上需加上@EnableScheduling注解SpringBootSchedulingApplication.java
package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.scheduling.annotation.EnableScheduling; @SpringBootApplication @EnableScheduling public class SpringBootSchedulingApplication { public static void main(String[] args) { SpringApplication.run(SpringBootSchedulingApplication.class, args); } }
Task1.java
package com.example.demo.utils.task; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; /** * 每隔六秒执行(cron表达式) * * @Author: 我爱大金子 * @Description: 每隔六秒执行(cron表达式) * @Date: Create in 18:03 2017/7/4 */ @Component public class Task1 { private int count=0; @Scheduled(cron="*/6 * * * * ?") private void process(){ System.out.println("this is scheduler task runing "+(count++)); } }
Task2.java
package com.example.demo.utils.task; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.text.SimpleDateFormat; import java.util.Date; /** * 每隔六秒执行(fixed方式) * * @Author: 我爱大金子 * @Description: 每隔六秒执行(fixed方式) * @Date: Create in 18:03 2017/7/4 */ @Component public class Task2 { private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); @Scheduled(fixedRate = 6000) public void reportCurrentTime() { System.out.println("现在时间:" + dateFormat.format(new Date())); } }
效果:
三、说明
3.1、@Scheduled参数
@Scheduled参数可以接受两种定时的设置:一种是我们常用的cron="*/6 * * * * ?",一种是 fixedRate = 6000,两种都表示每隔六秒打印一下内容。
fixedRate说明
@Scheduled(fixedRate = 6000) :上一次开始执行时间点之后6秒再执行
@Scheduled(fixedDelay = 6000) :上一次执行完毕时间点之后6秒再执行
@Scheduled(initialDelay=1000, fixedRate=6000) :第一次延迟1秒后执行,之后按fixedRate的规则每6秒执行一次
3.2、Could not find default TaskScheduler bean异常处理
就会在debug级别的日志输出一个异常:
logger.debug("Could not find default TaskScheduler bean", ex);
当然,这个异常并不影响应用程序运行,如果你不想看到这个异常,就可以通过提升org.springframework.scheduling这个包下日志级别来屏蔽这个不合理的异常。
本文出自 “我爱大金子” 博客,请务必保留此出处http://1754966750.blog.51cto.com/7455444/1944645
springBoot(19):定时任务
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。