zoukankan      html  css  js  c++  java
  • Quartz定时任务

    Quartz是纯Java开发的工作任务调度框架,可以与各种Java框架配合使用,也可以独立运行。一般在项目中实现定时任务。

    根据官方的描述Quartz可以支持,一个、多个乃至万个定时任务,个人不太敢这么尝试,如果那么多定时任务的话,性能实在怕拖累了。不过也可以看出Quartz对自己的性能是很有自信的。

    本文讲解在Spring环境下以注解的方式如何实现Quartz,用后发现这个简单的实在不像话,哪像一个拥有如此强大功能的框架的配置过程啊,简直是傻瓜型的。

    1473058358717068189.png 在spring.xml文件中增加一行配置

    <task:annotation-driven></task:annotation-driven>

    注意,这个配置用到了task标签,因此需要在beans标签上增加如下配置:

    xmlns:task="http://www.springframework.org/schema/task"

    在xsi:schemaLocation中增加:

    http://www.springframework.org/schema/task 

    http://www.springframework.org/schema/task/spring-task.xsd

    就这么简单,Quartz的配置就完成了

     写一个Quartz的测试类和方法

    代码如下:

    package com.wskj.app.quartz;
     
    import java.util.Date;
     
    import org.springframework.scheduling.annotation.Scheduled;
    import org.springframework.stereotype.Component;
     
    @Component
    public class TestQuartz {
         
        @Scheduled(cron = "*/4 * *  * * ? ")
        public void printab(){
            System.out.println("Hello,"+new Date());
        }
     
    }

    解释说明

    @Component注解:通知Spring,该类将愿意被Spring作为一个组件管理。

    @Scheduled注解:声明这是一个定时执行的任务。

    cron属性:定义了CronTrigger,什么时间触发执行。

     CronTrigger解释

    CronTrigger配置完整格式为: [秒] [分] [小时] [日] [月] [周] [年]

    序号    说明     是否必填     允许填写的值    允许的通配符    

     1     秒     是          0-59          , - * /    

     2     分     是          0-59          , - * /    

     3    小时     是          0-23          , - * /    

     4     日     是          1-31          , - * ? / L W    

     5     月     是          1-12 or JAN-DEC   , - * /    

     6     周     是          1-7 or SUN-SAT    , - * ? / L #    

     7     年     否          empty 或 1970-2099  , - * /    

    举例如下:

    0 0 12 * * ?         每天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点59分(整点开始,每隔5分触发)    

    0 0/5 14,18 * * ?     每天下午的 2点到2点59分、18点到18点59分(整点开始,每隔5分触发)    

    0 0-5 14 * * ?       每天下午的 2点到2点05分每分触发    

    0 10,44 14 ? 3 WED    3月分每周三下午的 2点10分和2点44分触发    

    0 15 10 ? * MON-FRI    从周一到周五每天上午的10点15分触发    

    0 15 10 15 * ?       每月15号上午10点15分触发    

    0 15 10 L * ?        每月最后一天的10点15分触发    

    0 15 10 ? * 6L       每月最后一周的星期五的10点15分触发    

    0 15 10 ? * 6L 2002-2005 从2002年到2005年每月最后一周的星期五的10点15分触发    

    0 15 10 ? * 6#3       每月的第三周的星期五开始触发    

    0 0 12 1/5 * ?       每月的第一个中午开始每隔5天触发一次    

    0 11 11 11 11 ?      每年的11月11号 11点11分触发(光棍节)    

    本文摘自:http://www.jiisb.com/www/article/art_124.html

  • 相关阅读:
    当你输入一个网址的时候,实际会发生什么?
    HTTP响应报文与工作原理详解
    DNS系统的解析原理
    spark-streaming集成Kafka处理实时数据
    python分布式环境下的限流器
    使用spark与MySQL进行数据交互的方法
    Linux Redis集群搭建与集群客户端实现
    commons-pool与commons-pool2连接池(Hadoop连接池)
    Kazoo Python Zookeeper 选主
    SpringMVC拦截器Interceptor
  • 原文地址:https://www.cnblogs.com/fengwenzhee/p/6978005.html
Copyright © 2011-2022 走看看