`
wangduorong
  • 浏览: 49877 次
社区版块
存档分类
最新评论

Spring中Quartz的配置

阅读更多

Quartz是一个强大的企业级任务调度框架,Spring中继承并简化了Quartz,下面就看看在Spring中怎样配置Quartz

 

Spring中的配置文件:

 

 

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

 

<beans>

  

  <!-- 定时器工厂 -->

  <bean id="timerFactorBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">

      <property name="triggers">

          <list>

             <!-- 可以配置多个定时任务 -->

             <ref bean="JobTrigger"/>

          </list>

      </property>

  </bean>

  <!-- 定义执行时间 -->

  <bean id="JobTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">

     <property name="jobDetail" ref="orderJobDetail"/>

     <!-- 每天早上9点10运行 2分钟运行一次 -->

<property name="cronExpression" value="0 10/2 9 * * ?"/>

  </bean>

 

  <!-- 定义运行定时任务的方法 -->

  <bean id="orderJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

      <property name="targetObject" ref="orderJob" />

      <property name="concurrent" value="false"/>

      <property name="targetMethod" value="run" />

  </bean>

  

  <!-- 执行定时器的类和方法 -->

  <bean id="orderJob" class="timer.OrderAutoJob"></bean>

  

</beans>

 

定时任务运行的类

package timer;

 

public class OrderAutoJob {

 

public void run() {

 

System.out.println("OrderAutoJob timing start....");

 

System.out.println("OrderAutoJob timing end....");

}

}

 

 

测试程序:

package Test;

 

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

 

public class TestAutoOrder {

public static void main(String[] args) {

System.out.println("Test start.");

                ApplicationContext context = new ClassPathXmlApplicationContext("spring/applicationContext.xml");

                System.out.print("Test end..");      

}

}

 

 

 

关于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 * * *

 

分享到:
评论

相关推荐

    关于spring中quartz的配置

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

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

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

    spring-quartz配置

    spring-quartz的标准配置文件

    Spring + Quartz配置实例(转载)

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

    spring+quartz demo

    在 Spring 配置中,可以使用 `&lt;bean&gt;` 标签创建 JobDetail 实例,并关联 Job 类。 3. **Trigger 配置**: Trigger 决定了 Job 的执行时间。可以使用 CronTrigger 或 SimpleTrigger,前者基于 Cron 表达式,后者...

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

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

    Spring Quartz如何动态配置时间

    在本文中,我们将讨论如何使用 Spring Quartz 实现动态配置时间,并提供了详细的实现步骤和实践经验。 动态配置时间的目的 在实际应用中,任务的执行时间往往需要根据业务需求进行动态调整,以满足不同的需求场景...

    spring 集成quartz 用数据库实现quartz的集群

    在Maven或Gradle的配置文件中,我们需要引入Quartz库以及Spring对Quartz的支持库。这些库将包含所有必要的类和接口,如`Scheduler`, `Job`, `Trigger`等,用于定义和管理定时任务。 接下来,配置Quartz。在Spring的...

    spring集成quartz集群配置

    这里,`myDS`是数据源的名称,需要与Spring配置中的`dataSource`引用匹配。 当多个Quartz节点在相同的数据库上运行时,它们会形成一个集群。每个节点都可以独立地调度和执行任务,而不会冲突。如果某个节点故障,...

    quartz和spring-quartz

    学习Quartz和Spring-Quartz,不仅需要理解它们的基本概念,还要掌握如何在实际项目中进行配置和使用。例如,创建一个定时任务,你需要定义Job类,配置Trigger,然后在Spring的配置文件中设置Scheduler。此外,熟悉...

    spring-quartz定时设置详细说明

    2. 配置 Quartz:在 Spring 的配置文件(如 `application.properties` 或 `application.yml`)中,可以设置 Quartz 的基本属性,如线程池大小、作业存储策略等。 ```properties # application.properties 示例 ...

    Java_Spring与Quartz的整合

    - 在Spring配置中,使用`&lt;bean&gt;`标签定义Trigger,并关联Job。 4. **启动Scheduler** - 在Spring应用启动时,通过`SchedulerFactoryBean`的`start()`方法启动Scheduler,开始监控并执行Job。 5. **动态管理Job**...

    Spring_QuartZDemo

    此外,Quartz还支持JobGroup(任务组)、TriggerGroup(触发器组)、JobDataMap(用于传递Job执行时的参数)等功能,这些都可以在Spring的配置中灵活运用。通过学习Spring_QuartZDemo,你可以掌握这些高级特性的用法...

    Spring整合quartz2.2.3总结,quartz动态定时任务,Quartz定时任务集群配置

    2. 配置Scheduler:在Spring的配置文件中,使用`SchedulerFactoryBean`来初始化和配置Quartz Scheduler。可以设置如数据库存储、线程池大小等参数。 3. 创建Job类:定义一个实现了`org.quartz.Job`接口的类,这是...

    spring+quartz使用jar包

    在Spring中配置好数据库连接,Quartz会自动处理这部分。 8. **lib目录下的jar包**:在“lib”目录下,通常会包含Spring和Quartz的jar文件,以及它们的依赖库。例如,`spring-context.jar`、`spring-beans.jar`、`...

    Spring+quartz相关jar包.rar

    2. 配置 Scheduler:在 Spring 配置文件中,设置 Quartz 的 SchedulerFactoryBean,指定数据库存储(如果需要持久化任务信息)和相关的配置属性。 3. 定义 Job 和 Trigger:创建 Quartz 作业类(Job),实现 org....

    spring3配置quartz定时任务

    本文将详细介绍如何在Spring 3中配置Quartz来实现定时任务。 首先,理解定时任务的基本概念。定时任务是在指定时间点或按照一定规律自动执行的任务,这在业务系统中非常常见,例如数据清理、报表生成等。Quartz提供...

    spring 配置quartz需要的jar包

    在Java开发中,Spring框架与Quartz库的集成可以实现灵活且强大的定时任务管理。Spring提供了与Quartz的无缝整合,...同时,注意在生产环境中,可能还需要考虑集群环境下的Quartz配置,确保任务的正确执行和避免冲突。

    Spring -Quartz的配置

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

Global site tag (gtag.js) - Google Analytics