【51CTO晃荡】8.26 带你深度懂得清华大年夜学、搜狗基于算法的IT运维实践与摸索
(3)fixedDelayString:与fixedDelay含义一样,只是参数类型变为String;
摘要: 讲解若何应用SpringBoot准时义务,并经由过程源码解释若何应用多线程处理各准时义务。 具体解释cron表达式用法。
一、准时义务概述
后台项目开辟中经常会用到准时义务,如今实现准时义务都方法也是多种多样。下面列举几种常见的准时义务实现方法:
1. Quartz:Quartz的应用相当广泛,它是一个功能强大年夜的调剂器,当然应用起来也相对麻烦;
2. java.util包里的Timer,它也可以实现准时义务然则功能过于单一所有应用很少。
3. 就是我们今天要介绍的Spring自带的准时义务Schedule,其实可以把它看作是一个简化版的,轻量级的Quartz,应用起来也相对便利很多。
二、实现准时义务
1. 创建准时义务
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.scheduling.annotation.Scheduled;
- import org.springframework.stereotype.Component;
- /**
- * Description: 构建履行准时义务
- * Designer: jack
- * Date: 2017/8/10
- * Version: 1.0.0
- */
- @Component
- public class ScheduledTasks {
- private Logger logger = LoggerFactory.getLogger(ScheduledTasks.class);
- private int fixedDelayCount = 1;
- private int fixedRateCount = 1;
- private int initialDelayCount = 1;
- private int cronCount = 1;
- @Scheduled(fixedDelay = 5000) //fixedDelay = 5000表示当前办法履行完毕5000ms后,Spring scheduling会再次调用该办法
- public void testFixDelay() {
- logger.info("===fixedDelay: 第{}次履行办法", fixedDelayCount++);
- }
- @Scheduled(fixedRate = 5000) //fixedRate = 5000表示当前办法开端履行5000ms后,Spring scheduling会再次调用该办法
- public void testFixedRate() {
- logger.info("===fixedRate: 第{}次履行办法", fixedRateCount++);
- }
- @Scheduled(initialDelay = 1000, fixedRate = 5000) //initialDelay = 1000表示延迟1000ms履行第一次义务
- public void testInitialDelay() {
- logger.info("===initialDelay: 第{}次履行办法", initialDelayCount++);
- }
- @Scheduled(cron = "0 0/1 * * * ?") //cron接收cron表达式,根据cron表达式肯定准时规矩
推荐阅读
【51CTO晃荡】8.26 带你深度懂得清华大年夜学、搜狗基于算法的IT运维实践与摸索 本文起首介绍非抢占式内核(Non-Preemptive Kernel)和可抢占式内核(Preemptive Kernel)的差别。接着分析L>>>详细阅读
地址:http://www.17bianji.com/lsqh/36757.html
1/2 1