spring boot中实现配置和使用定时器
2017-09-15 09:54
573 查看
简单两步,实现在spring boot中配置和使用定时器:
1、在入口类中加入@EnableScheduling注解(即springboot启动类添加注解@EnableScheduling):
[java] view
plain copy
@SpringBootApplication
@EnableScheduling
public class MySpringBootApplication {
private static Logger logger = LoggerFactory.getLogger(MySpringBootApplication.class);
public static void main(String[] args) {
SpringApplication.run(MySpringBootApplication.class, args);
logger.info("My Spring Boot Application Started");
}
}
2、创建定时器类,类中的方法注解了@Scheduled就是一个定时器,我这里谢了两个定时器,你们用一个也行。:
[java] view
plain copy
@Component
public class Scheduler {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Scheduled(cron="0 0/1 * * * ?") //每分钟执行一次,这是cron表达式
public void statusCheck() {
logger.info("每分钟执行一次。开始……");
//statusTask.healthCheck();
logger.info("每分钟执行一次。结束。");
}
@Scheduled(fixedRate=20000)
public void testTasks() {
logger.info("每20秒执行一次。开始……");
//statusTask.healthCheck();
logger.info("每20秒执行一次。结束。");
}
}
启动项目,验证结果:
[plain] view
plain copy
2016-07-19 14:51:57,049:INFO pool-2-thread-1 (Scheduler.java:28) - 每20秒执行一次。开始……
2016-07-19 14:51:57,049:INFO pool-2-thread-1 (Scheduler.java:31) - 每20秒执行一次。结束。
2016-07-19 14:52:00,002:INFO pool-2-thread-1 (Scheduler.java:19) - 每分钟执行一次。开始……
2016-07-19 14:52:00,002:INFO pool-2-thread-1 (Scheduler.java:22) - 每分钟执行一次。结束。
2016-07-19 14:52:17,049:INFO pool-2-thread-1 (Scheduler.java:28) - 每20秒执行一次。开始……
2016-07-19 14:52:17,049:INFO pool-2-thread-1 (Scheduler.java:31) - 每20秒执行一次。结束。
2016-07-19 14:52:37,049:INFO pool-2-thread-1 (Scheduler.java:28) - 每20秒执行一次。开始……
2016-07-19 14:52:37,049:INFO pool-2-thread-1 (Scheduler.java:31) - 每20秒执行一次。结束。
2016-07-19 14:52:57,049:INFO pool-2-thread-1 (Scheduler.java:28) - 每20秒执行一次。开始……
2016-07-19 14:52:57,049:INFO pool-2-thread-1 (Scheduler.java:31) - 每20秒执行一次。结束。
2016-07-19 14:53:00,002:INFO pool-2-thread-1 (Scheduler.java:19) - 每分钟执行一次。开始……
2016-07-19 14:53:00,002:INFO pool-2-thread-1 (Scheduler.java:22) - 每分钟执行一次。结束。
2016-07-19 14:53:17,049:INFO pool-2-thread-1 (Scheduler.java:28) - 每20秒执行一次。开始……
2016-07-19 14:53:17,049:INFO pool-2-thread-1 (Scheduler.java:31) - 每20秒执行一次。结束。
关于@Scheduled注解中参数的使用,以及cron的定义,请参考:http://blog.csdn.net/ClementAD/article/details/42042111
源代码参考:https://github.com/xujijun/my-spring-boot
1、在入口类中加入@EnableScheduling注解(即springboot启动类添加注解@EnableScheduling):
[java] view
plain copy
@SpringBootApplication
@EnableScheduling
public class MySpringBootApplication {
private static Logger logger = LoggerFactory.getLogger(MySpringBootApplication.class);
public static void main(String[] args) {
SpringApplication.run(MySpringBootApplication.class, args);
logger.info("My Spring Boot Application Started");
}
}
2、创建定时器类,类中的方法注解了@Scheduled就是一个定时器,我这里谢了两个定时器,你们用一个也行。:
[java] view
plain copy
@Component
public class Scheduler {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Scheduled(cron="0 0/1 * * * ?") //每分钟执行一次,这是cron表达式
public void statusCheck() {
logger.info("每分钟执行一次。开始……");
//statusTask.healthCheck();
logger.info("每分钟执行一次。结束。");
}
@Scheduled(fixedRate=20000)
public void testTasks() {
logger.info("每20秒执行一次。开始……");
//statusTask.healthCheck();
logger.info("每20秒执行一次。结束。");
}
}
启动项目,验证结果:
[plain] view
plain copy
2016-07-19 14:51:57,049:INFO pool-2-thread-1 (Scheduler.java:28) - 每20秒执行一次。开始……
2016-07-19 14:51:57,049:INFO pool-2-thread-1 (Scheduler.java:31) - 每20秒执行一次。结束。
2016-07-19 14:52:00,002:INFO pool-2-thread-1 (Scheduler.java:19) - 每分钟执行一次。开始……
2016-07-19 14:52:00,002:INFO pool-2-thread-1 (Scheduler.java:22) - 每分钟执行一次。结束。
2016-07-19 14:52:17,049:INFO pool-2-thread-1 (Scheduler.java:28) - 每20秒执行一次。开始……
2016-07-19 14:52:17,049:INFO pool-2-thread-1 (Scheduler.java:31) - 每20秒执行一次。结束。
2016-07-19 14:52:37,049:INFO pool-2-thread-1 (Scheduler.java:28) - 每20秒执行一次。开始……
2016-07-19 14:52:37,049:INFO pool-2-thread-1 (Scheduler.java:31) - 每20秒执行一次。结束。
2016-07-19 14:52:57,049:INFO pool-2-thread-1 (Scheduler.java:28) - 每20秒执行一次。开始……
2016-07-19 14:52:57,049:INFO pool-2-thread-1 (Scheduler.java:31) - 每20秒执行一次。结束。
2016-07-19 14:53:00,002:INFO pool-2-thread-1 (Scheduler.java:19) - 每分钟执行一次。开始……
2016-07-19 14:53:00,002:INFO pool-2-thread-1 (Scheduler.java:22) - 每分钟执行一次。结束。
2016-07-19 14:53:17,049:INFO pool-2-thread-1 (Scheduler.java:28) - 每20秒执行一次。开始……
2016-07-19 14:53:17,049:INFO pool-2-thread-1 (Scheduler.java:31) - 每20秒执行一次。结束。
关于@Scheduled注解中参数的使用,以及cron的定义,请参考:http://blog.csdn.net/ClementAD/article/details/42042111
源代码参考:https://github.com/xujijun/my-spring-boot
相关文章推荐
- Spring Boot系列教程五:使用properties配置文件实现多环境配置
- spring boot使用logback实现多环境日志配置详解
- SpringBoot---使用Mybatis配置文件实现数据的增删查改
- Spring Boot 配置和使用多线程池的实现
- Spring Boot系列教程五:使用properties配置文件实现多环境配置
- SpringBoot 使用properties配置文件实现多环境配置
- Springboot使用maven的profiles实现多环境配置文件切换
- Spring Boot系列教程五:使用properties配置文件实现多环境配置
- 第三节:SpringBoot使用properties配置文件实现多环境配置
- 定时器实现 使用spring
- 使用Spring配置文件实现AOP
- 使用 Spring 实现定时器任务,定时统计汇总
- Spring学习笔记(16)----使用Spring配置文件实现AOP
- 在Spring中使用JDK定时器实现调度任务
- spring3中使用注解方式实现定时器调度任务
- 定时器的实现、java定时器Timer和Quartz介绍与Spring中定时器的配置
- Spring学习笔记(18)----使用Spring配置文件实现事务管理
- 使用spring配置文件实现AOP
- 定时器的实现、java定时器介绍与Spring中定时器的配置
- 使用Spring的Quartz方式实现Java定时器功能