`
tokyo2006
  • 浏览: 32816 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
最近访客 更多访客>>
社区版块
存档分类
最新评论

[转载]quartz的配置

    博客分类:
  • Java
阅读更多

首先我们来写一个被调度的类: package com.kay.quartz;

  1. public class QuartzJob  
  2. {  
  3.     public void work()  
  4.     {  
  5.     System.out.println("Quartz的任务调度!!!");  
  6.     }  

 

Spring的Quartz配置文件:

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> 
  3.  
  4. <beans>      
  5.         <!-- 要调用的工作类 --> 
  6.         <bean id="quartzJob" class="com.kay.quartz.QuartzJob"></bean> 
  7.         <!-- 定义调用对象和调用对象的方法 --> 
  8.         <bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> 
  9.             <!-- 调用的类 --> 
  10.             <property name="targetObject"> 
  11.                 <ref bean="quartzJob"/> 
  12.             </property> 
  13.             <!-- 调用类中的方法 --> 
  14.             <property name="targetMethod"> 
  15.                 <value>work</value> 
  16.             </property> 
  17.         </bean> 
  18.         <!-- 定义触发时间 --> 
  19.         <bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean"> 
  20.             <property name="jobDetail"> 
  21.                 <ref bean="jobtask"/> 
  22.             </property> 
  23.             <!-- cron表达式 --> 
  24.             <property name="cronExpression"> 
  25.                 <value>10,15,20,25,30,35,40,45,50,55 * * * * ?</value> 
  26.             </property> 
  27.         </bean> 
  28.         <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序  --> 
  29.         <bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 
  30.             <property name="triggers"> 
  31.                 <list> 
  32.                     <ref bean="doTime"/> 
  33.                 </list> 
  34.             </property> 
  35.         </bean> 
  36.       
  37. </beans>测试程序:  
  38. package com.kay.quartz;  
  39. imp<wbr>ort org.springframework.context.ApplicationContext;   <li>imp<wbr>ort org.springframework.context.support.ClassPathXmlApplicationContext;   <li>  </li> <li>public class MainTest   </li> <li>{   </li> <li>    /**   </li> <li>     * @param args   </li> <li>     */   </li> <li>    public static void main(String[] args)   </li> <li>    {   </li> <li>        System.out.println("Test start.");   </li> <li>        ApplicationContext context = new ClassPathXmlApplicationContext("quartz-config.xml");   </li> <li>        //如果配置文件中将startQuertz bean的lazy-init设置为false 则不用实例化   </li> <li>        //context.getBean("startQuertz");   </li> <li>        System.out.print("Test end..");         </li> <li>    }   </li> <li>}  </li> </wbr> </li></wbr>

 

我们需要把log4j的配置文件放入src目录下,启动main类就可以了。

关于cron表达式(来自网络):

Cron 表达式包括以下 7 个字段:

小时

月内日期

周内日期

年(可选字段)

特殊字符

Cron 触发器利用一系列特殊字符,如下所示:

反斜线(/)字符表示增量值。例如,在秒字段中“5/15”代表从第 5 秒开始,每 15 秒一次。

问号(?)字符和字母 L 字符只有在月内日期和周内日期字段中可用。问号表示这个字段不包含具体值。所以,如果指定月内日期,可以在周内日期字段中插入“?”,表示周内日期值无关紧要。字母 L 字符是 last 的缩写。放在月内日期字段中,表示安排在当月最后一天执行。在周内日期字段中,如果“L”单独存在,就等于“7”,否则代表当月内周内日期的最后一个实例。所以“0L”表示安排在当月的最后一个星期日执行。

在月内日期字段中的字母(W)字符把执行安排在最靠近指定值的工作日。把“1W”放在月内日期字段中,表示把执行安排在当月的第一个工作日内。

井号(#)字符为给定月份指定具体的工作日实例。把“MON#2”放在周内日期字段中,表示把任务安排在当月的第二个星期一。

星号(*)字符是通配字符,表示该字段可以接受任何可能的值。

字段 允许值 允许的特殊字符

秒 0-59 , - * /

分 0-59 , - * /

小时 0-23 , - * /

日期 1-31 , - * ? / L W C

月份 1-12 或者 JAN-DEC , - * /

星期 1-7 或者 SUN-SAT , - * ? / L C #

年(可选) 留空, 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期间的每1分钟触发

"0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发

"0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发

"0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发

"0 10,44 14 ? 3 WED" 每年三月的星期三的下午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" 每月的第三个星期五上午10:15触发

每天早上6点

0 6 * * *

每两个小时

0 */2 * * *

晚上11点到早上8点之间每两个小时,早上八点

0 23-7/2,8 * * *

每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点

0 11 4 * 1-3

1月1日早上4点

0 4 1 1 *

转载于和申的日志
分享到:
评论

相关推荐

    完整quartz配置大全

    OpenSymphony 的Quartz提供了一个比较完美的任务调度解决方案。  Quartz 是个开源的作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。  Quartz中有两个基本概念:作业和触发器。作业是...

    Spring Quartz如何动态配置时间

    Spring Quartz 动态配置时间 Spring Quartz 是一个功能强大的任务调度框架,广泛应用于 Java 企业级应用程序中。其中一个重要的功能便是动态配置时间,触发相应的任务。在本文中,我们将讨论如何使用 Spring Quartz...

    springboot整合quartz定时任务yml文件配置方式

    Spring Boot与Quartz的结合提供了便捷的配置方式,特别是通过YAML(YAML Ain't Markup Language)配置文件,使得配置更加直观和灵活。以下将详细介绍如何在Spring Boot应用中使用YAML文件配置Quartz定时任务,以及...

    quartz配置含表达式的事务以及集群上quartz配置

    在配置Quartz时,有时我们需要结合表达式来控制事务,同时在集群环境下,配置Quartz以确保高可用性和任务的一致性。 首先,我们来看如何在Quartz中配置含表达式的事务。在Quartz中,任务的执行是在一个事务上下文中...

    转:spring多个定时任务quartz配置

    本文将深入探讨如何在Spring中配置多个Quartz定时任务,并结合`quartz.properties`文件进行详细讲解。 首先,我们需要理解Quartz的基本概念。Quartz是开源的作业调度框架,允许应用程序在特定时间执行任务。它支持...

    quartz 时间配置规则

    quartz 时间配置规则quartz 时间配置规则quartz 时间配置规则quartz 时间配置规则quartz 时间配置规则quartz 时间配置规则

    Spring + Quartz配置实例(转载)

    标题 "Spring + Quartz配置实例(转载)" 暗示了我们将讨论如何在Java环境中整合Spring框架与Quartz作业调度库的使用。Quartz是一个开源的作业调度库,它允许开发者安排任务以在特定时间执行,而Spring框架则是一个...

    Spring中的Quartz配置-Spring-定时器-java定时器.doc

    Spring 中的 Quartz 配置-Spring 定时器-java 定时器 在 Spring 框架中,Quartz 是一个非常流行的开源作业调度器,可以实现任务的定时执行。在本篇文章中,我们将讨论如何在 Spring 中配置 Quartz,以实现 Java ...

    quartz时间配置表达式生成工具

    quartz时间配置表达式生成工具,通界面配置生成表达式

    SpringBoot2.x quartz yml完整配置

    添加公众号:猿有一技,回复 :Spring ,获取SpringBoot2.x quartz yml完整配置

    关于spring中quartz的配置

    以下将详细介绍如何在Spring中配置Quartz以及相关知识点。 1. **引入依赖** 在开始配置之前,首先需要在项目的`pom.xml`或`build.gradle`文件中引入Quartz和Spring相关的依赖库。对于Maven项目,可以添加如下依赖...

    quartz配置

    quartz 配置文件 ,很详细,带注释 ,我觉得挺好的,可以参考,够了,

    spring多个定时任务quartz配置

    本文将深入探讨如何在Spring中配置Quartz以实现多个定时任务。 首先,我们需要理解Quartz的基本概念。Quartz是一个开源的工作调度框架,它允许应用程序定义作业(Jobs)和触发器(Triggers),以在指定的时间执行...

    对于Quartz.net 3.0.7.0(目前最高版本)的使用:能过配置文件实现工作调整

    在描述中提到的问题是关于如何在3.x版本中通过`quartz_jobs.xml`配置文件实现作业调度,这在许多教程中可能较少被提及,因为早期版本的Quartz.NET更倾向于使用XML配置,而新版本则倾向于使用代码配置或者混合方式。...

    Quartz 数据库动态配置

    这就是“Quartz数据库动态配置”所解决的问题。 Quartz通过将作业(Jobs)和触发器(Triggers)的信息存储在数据库中,实现了配置的动态化。这样,我们可以在不重启应用的情况下,通过修改数据库中的表来添加、删除...

    spring-quartz配置

    spring-quartz的标准配置文件

    Spring -Quartz的配置

    本文将深入探讨如何在Spring框架中配置Quartz,以便利用其功能来执行计划的任务。 首先,我们需要理解Spring与Quartz结合的基本原理。Spring通过提供一个Quartz的JobFactory,可以集成Quartz到Spring容器中,这样...

    Quartz2.2.1基于Spring注解方式配置Quartz

    本文将详细介绍如何在Spring环境中使用注解方式配置Quartz。 1. **引入依赖** 在项目中,你需要引入Quartz和Spring的相应依赖。在Maven的pom.xml文件中,添加以下依赖: ```xml &lt;groupId&gt;org.quartz-scheduler...

    定时器(quartz+spring)读取数据库配置

    本教程将深入探讨如何使用Quartz与Spring框架结合来创建一个能从数据库读取配置的定时任务。 Quartz是一个开源的作业调度框架,它提供了丰富的API和功能,可以用来安排和执行任务。Spring框架则是一个全面的企业级...

    Quartz CronTrigger配置说明

    ### Quartz CronTrigger配置详解 #### 一、CronTrigger简介 CronTrigger 是 Quartz 调度器中一种非常强大的任务触发机制,它基于类似于 Unix cron 的表达式来定义任务的执行时间。CronTrigger 表达式由七个或八个...

Global site tag (gtag.js) - Google Analytics