zoukankan      html  css  js  c++  java
  • spring Cloud 定时任务 @Scheduled

    本文主要记录:如何使用spring的@Scheduled注解实现定时作业,基于spring cloud

    1)pom.xml 文件引入相关依赖、spring-maven插件

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.vip.qa</groupId>
        <artifactId>springboot-demo</artifactId>
        <version>1.0-SNAPSHOT</version>
        <packaging>jar</packaging>
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.5.2.RELEASE</version>
            <relativePath/>
        </parent>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <java.version>1.8</java.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    </project>
    View Code

    2)定时任务类

    @Component:类注册成bean

    @Scheduled:定时任务,可选固定时间、cron表达式等类型

    cron表达式 每位的意义:Seconds Minutes Hours DayofMonth Month DayofWeek

    package com.vip.qa.vop.service;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.scheduling.annotation.Scheduled;
    import org.springframework.stereotype.Component;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    /**
     * Created by danny.yao on 2017/10/19.
     */
    @Component
    public class ScheduledTasks {
    
        private static final Logger logger = LoggerFactory.getLogger(ScheduledTasks.class);
        private static final SimpleDateFormat formate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    
        @Scheduled(fixedRate = 5000)
        public void scheduledDemo(){
            logger.info("scheduled - fixedRate - print time every 5 seconds:{}", formate.format(new Date()) );
        }
    
        /**
         "0/5 * *  * * ?"   每5秒触发
         "0 0 12 * * ?"    每天中午十二点触发
         "0 15 10 ? * *"    每天早上10:15触发
         "0 15 10 * * ?"    每天早上10:15触发
         "0 15 10 * * ? *"    每天早上10:15触发
         "0 15 10 * * ? 2005"    2005年的每天早上10:15触发
         "0 * 14 * * ?"    每天从下午2点开始到2点59分每分钟一次触发
         "0 0/5 14 * * ?"    每天从下午2点开始到2:55分结束每5分钟一次触发
         "0 0/5 14,18 * * ?"    每天的下午2点至2:55和6点至6点55分两个时间段内每5分钟一次触发
         "0 0-5 14 * * ?"    每天14:00至14:05每分钟一次触发
         "0 10,44 14 ? 3 WED"    三月的每周三的14:10和14:44触发
         "0 15 10 ? * MON-FRI"    每个周一、周二、周三、周四、周五的10:15触发
         */
        @Scheduled(cron="0/10 * *  * * ?")
        public void scheduledCronDemo(){
            logger.info("scheduled - cron - print time every 10 seconds:{}", formate.format(new Date()) );
        }
    }
    View Code

    3)应用程序入口类Application

    @SpringBootApplication:等于原来的 (默认属性)@Configuration + @EnableAutoConfiguration + @ComponentScan

    @EnableScheduling:启用定时任务

    package com.vip.qa.vop;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.scheduling.annotation.EnableScheduling;
    
    /**
     * Created by danny.yao on 2017/10/19.
     */
    @SpringBootApplication
    @EnableScheduling
    public class Application {
        public static void main(String[] args){
            SpringApplication.run(Application.class, args);
        }
    }
    View Code

    4)运行入口类,可以看到结果

  • 相关阅读:
    DVWA 黑客攻防演练(十)反射型 XSS 攻击 Reflected Cross Site Scripting
    DVWA 黑客攻防演练(九) SQL 盲注 SQL Injection (Blind)
    DVWA 黑客攻防演练(八)SQL 注入 SQL Injection
    DVWA 黑客攻防演练(七)Weak Session IDs
    DVWA 黑客攻防演练(六)不安全的验证码 Insecure CAPTCHA
    DVWA 黑客攻防演练(五)文件上传漏洞 File Upload
    工作流表结构设计
    Visual Studio 2019尝鲜----新建空项目体验
    《使用CSLA 2019:CSLA .NET概述》原版和机译文档下载
    .NET快速开发平台的在线预览
  • 原文地址:https://www.cnblogs.com/dannyyao/p/7691871.html
Copyright © 2011-2022 走看看