zoukankan      html  css  js  c++  java
  • 11、SpringBoot------定时任务

     开发工具:STS

    代码下载链接:https://github.com/theIndoorTrain/Springboot/tree/52ef6c0c805913db1e66ed18671c322e284233f0

    前言:

    之前我们有讲过Quartz任务调度。

    现在,我们来讲解下Spring自己的任务调度。

    在Springboot项目中,这种超级简单的调度方式将会给我们带来便利。

    任务一:

    5s后开始,每10s执行一次,执行一次任务要2s;

    1.在启动类中开启任务调度,加上@EnableScheduling

     1 package com.xm;
     2 
     3 import java.text.SimpleDateFormat;
     4 import java.util.Date;
     5 
     6 import org.springframework.boot.SpringApplication;
     7 import org.springframework.boot.autoconfigure.SpringBootApplication;
     8 import org.springframework.scheduling.annotation.EnableScheduling;
     9 
    10 @EnableScheduling
    11 @SpringBootApplication
    12 public class Demo0061Application {
    13 
    14     public static void main(String[] args) {
    15         16         SpringApplication.run(Demo0061Application.class, args);
           System.out.println("Start Job:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
    17 } 18 }

    2.定义任务

     1 package com.xm.job;
     2 
     3 import java.text.SimpleDateFormat;
     4 import java.util.Date;
     5 
     6 import org.springframework.scheduling.annotation.Scheduled;
     7 import org.springframework.stereotype.Component;
     8 
     9 @Component
    10 public class HelloJob {
    11     
    12     @Scheduled(initialDelay=5000,fixedRate=10000)
    13     public void run() {
    14         System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
    15         try {
    16             Thread.sleep(2000);
    17         } catch (InterruptedException e) {
    18             // TODO Auto-generated catch block
    19             e.printStackTrace();
    20         }
    21         System.out.println("hello world");
    22     }
    23 
    24 }

    3.运行结果截图

    4.分析

    1.initialDelay=5000:任务开始时间为5s以后
    2.fixedRate=10000:任务每10s之内完成一次
    在这里任务时间是小于fixedRate
    现在我们让任务运行时间改为11s
           @Scheduled(initialDelay=5000,fixedRate=10000)
        public void run() {
            System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
            try {
                Thread.sleep(11000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            System.out.println("hello world");
        }    
    运行结果为:

    
    

    任务二:

    
    

    5s后开始,每间隔10s执行一次,执行一次任务要2s;

    1.定义任务

        @Scheduled(initialDelay=5000,fixedDelay=10000)
        public void run() {
            System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
            try {
                //Thread.sleep(11000);
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            System.out.println("hello world");
        }    

    2.运行结果截图:

    分析:

    fixedDelay:每次任务完成结束后再开始计时



    任务三:
    每天16:00:00开始到16:21:59每5s执行一次
    1.定义任务
     1     @Scheduled(cron="0/5 0-21 16 * * ?")
     2     public void run() {
     3         System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
     4         try {
     5             //Thread.sleep(11000);
     6             Thread.sleep(2000);
     7         } catch (InterruptedException e) {
     8             // TODO Auto-generated catch block
     9             e.printStackTrace();
    10         }
    11         System.out.println("hello world");
    12     }
    
    
    
    2.运行结果截图:

    3.分析

    这里运用到了Cron表达式,请点击这里查看详解。3.初识Cron表达式

     



                                   2018-07-16
  • 相关阅读:
    Linux内核网络协议栈优化总纲
    Java实现 蓝桥杯VIP 算法训练 连续正整数的和
    Java实现 蓝桥杯VIP 算法训练 连续正整数的和
    Java实现 蓝桥杯VIP 算法训练 寂寞的数
    Java实现 蓝桥杯VIP 算法训练 寂寞的数
    Java实现 蓝桥杯VIP 算法训练 学做菜
    Java实现 蓝桥杯VIP 算法训练 学做菜
    Java实现 蓝桥杯VIP 算法训练 判断字符位置
    Java实现 蓝桥杯VIP 算法训练 判断字符位置
    Java实现 蓝桥杯VIP 算法训练 链表数据求和操作
  • 原文地址:https://www.cnblogs.com/TimerHotel/p/springboot11.html
Copyright © 2011-2022 走看看