`

Spring 定时任务 Quartz

阅读更多

近期项目中用到定时任务去处理报表生成功能:

简单记录一下以后在完善~~~后面附带所用到的jar包!

 

业务逻辑的Java Code:

写道
/**
* <b>项目名:</b>系统项目名称<br/>
* <b>包名:</b>com.members.system.timer.handler<br/>
* <b>文件名:</b>BusinessReport.java<br/>
* <b>版本信息:</b><br/>
* <b>日期:</b>Mar 2, 2011-10:22:58 AM<br/>
* <b>Copyright (c)</b> 2011XX公司-版权所有<br/>
*
*/
package com.members.system.timer.handler;

import java.util.Date;

import org.apache.log4j.Logger;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

/**
* @author 016540
*
*/
public class BusinessReport implements Job {
Logger logger =Logger.getLogger(BusinessReport.class);

public void perform(){ //执行报表统计入口函数
//业务逻辑
System.out.println("开始执行报表的业务逻辑了----现在的时间是--"+new Date());

}


/* (non-Javadoc)
* @see org.quartz.Job#execute(org.quartz.JobExecutionContext)
*/
@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
// TODO Auto-generated method stub
logger.info("开始执行任务:Date:"+ new Date());
perform();
logger.info("结束执行任务:Date:"+ new Date());

}

}

 

Spring的配置文件:

写道
<?xml version="1.0" encoding="GBK"?>
<!-- 指定Spring配置文件的Schema信息 -->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">

<!-- 注册业务Bean -->
<bean id="businessReport" class="com.members.system.timer.handler.BusinessReport" />

<!-- 注册到quartz里面 -->
<bean name="reportTask"
class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass" value="businessReport" />
</bean>

<!-- 触发器 -->
<bean id="cronTrigger"
class="org.springframework.scheduling.quartz.CronTriggerBean">

<!-- 指向我们的任务 -->
<property name="jobDetail" ref="reportTask" />

<!-- 每天下午16点50分到55分,每分钟运行一次 -->
<property name="cronExpression" value="0 0-1 11,12 * * ?" />
</bean>

<!-- 调度器 -->
<bean
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<!-- 触发器列表 -->
<ref bean="cronTrigger" />
</list>
</property>
<property name="configLocation" value="classpath:/properties/quartz.properties" />
</bean>

</beans>

 

 

Quartz属性文件 写道
#============================================================================
# Configure Main Scheduler Properties
#============================================================================
org.quartz.scheduler.instanceName = DefaultQuartzScheduler
org.quartz.scheduler.instanceId = AUTO
org.quartz.scheduler.rmi.export = false
org.quartz.scheduler.rmi.proxy = false
org.quartz.scheduler.wrapJobExecutionInUserTransaction = false

#============================================================================
# Configure ThreadPool
#============================================================================
#org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 10
org.quartz.threadPool.threadPriority = 5
#org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true

#============================================================================
# Configure JobStore
#============================================================================
#org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
#org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
org.quartz.jobStore.misfireThreshold = 60000
#org.quartz.jobStore.useProperties = false
#org.quartz.jobStore.tablePrefix = QRTZ_
#org.quartz.jobStore.dataSource = myDS

#org.quartz.jobStore.isClustered = true
#org.quartz.jobStore.clusterCheckinInterval = 15000

#============================================================================
# Configure DataSource
#============================================================================
#org.quartz.dataSource.myDS.driver = com.mysql.jdbc.Driver
#org.quartz.dataSource.myDS.URL = jdbc:mysql://localhost/test
#org.quartz.dataSource.myDS.user = root
#org.quartz.dataSource.myDS.password = root
#org.quartz.dataSource.myDS.maxConnections = 10


 

关于cronExpression的介绍:

关于触发器时间表达式的一些例子:

对于复杂触发器的cronExpression,可借鉴linux的cron。

 
字段  允许值                       允许的特殊字符
秒    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 *

分享到:
评论

相关推荐

    spring定时任务quartz.jar

    总的来说,"spring定时任务quartz.jar"是将Quartz集成到Spring项目中的一个关键组件,提供了丰富的定时任务管理和配置能力,帮助开发者构建高效、可靠的后台任务执行系统。通过深入理解和熟练运用Quartz,可以大大...

    spring之定时任务实现(spring-task和quartz等不同方式)

    Spring框架提供了一系列工具来支持定时任务的实现,其中包括Spring自带的`spring-task`模块和第三方的Quartz库。下面我们将详细探讨这两种方式以及如何通过注解和非注解的方式进行配置。 首先,`spring-task`是...

    spring多个定时任务quartz配置

    在Spring框架中,Quartz是一个强大的任务调度库,可以用于执行定时任务。本文将深入探讨如何在Spring中配置Quartz以实现多个定时任务。 首先,我们需要理解Quartz的基本概念。Quartz是一个开源的工作调度框架,它...

    spring整合java quartz实现动态定时任务的前台网页配置与管理

    在实际项目应用中经常会用到定时任务,可以通过quartz和spring的简单配置即可完成,但如果要改变任务的执行时间、频率,废弃任务等就需要改变配置甚至代码需要重启服务器,这里介绍一下如何通过quartz与spring的组合...

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

    在Spring框架中,Quartz是一个强大的任务调度库,可以用于执行定时任务。本文将深入探讨如何在Spring中配置多个Quartz定时任务,并结合`quartz.properties`文件进行详细讲解。 首先,我们需要理解Quartz的基本概念...

    spring+quartz动态定时任务创建 +mybatis

    在Spring中整合Quartz,我们可以利用Spring的管理能力,如bean的生命周期管理和事务管理,来更方便地创建和管理定时任务。 **Spring+Quartz动态定时任务创建** 将Spring与Quartz结合,我们可以方便地在运行时动态...

    spring定时任务关键jar包(齐全)

    本文将详细探讨Spring定时任务的关键知识点,并与提供的jar包列表关联。 首先,Spring定时任务主要依赖于`spring-context-support`模块,这个模块包含了处理定时任务所需的类和接口。在压缩包`lib`中,应该包含了这...

    spring3配置quartz定时任务

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

    spring定时任务之Quartz

    需要注意的是,`ssh2Test`这个文件名可能与本主题无关,因为它是SSH2测试相关的,而SSH2通常指的是Secure Shell 2协议,用于远程访问和管理服务器,与Spring定时任务或Quartz不直接相关。如果需要了解更多关于SSH2的...

    Spring+Quartz 从数据库中获取定时任务和定时时间,动态实现对定时任务的增删改查

    Spring框架结合Quartz库,提供了一种强大而灵活的方式来管理这些定时任务。本项目旨在演示如何利用Spring和Quartz从数据库中动态加载定时任务,并实现对它们的增删改查功能。以下是关于这个主题的详细知识讲解。 ...

    Spring 框架自带定时任务和Quartz定时任务

    在这两种方式中,Spring框架提供了自己的定时任务工具Spring Task,以及与专业定时任务框架Quartz集成的能力。 首先,对于Java自带的定时任务实现,我们可以使用java.util.Timer和java.util.TimerTask类。Timer类...

    Spring + quartz 定时任务修改定时时间不重启服务

    Spring + quartz 定时任务修改定时时间不重启服务

    spring整合quartz定时任务调度

    Spring框架作为Java领域广泛使用的轻量级框架,提供了与第三方库Quartz的整合,使得开发者能够轻松地在Spring应用中实现复杂的定时任务调度。Quartz是一款开源的作业调度框架,支持丰富的调度策略,可以满足各种定时...

    spring quartz定时任务demo

    在Java开发中,Spring框架与Quartz库的结合使用能够帮助开发者实现强大的定时任务功能。本文将详细解析“spring quartz定时任务demo”这个项目,它提供了实现Java定时任务的实例,便于快速理解和应用。 首先,...

    spring定时任务实现

    本文主要探讨了Spring中实现定时任务的三种主要方法:Java的`java.util.Timer`、Quartz库以及Spring自身的Task调度器。 首先,Java的`java.util.Timer`是一个基础的定时任务工具,它可以按照设定的频率执行任务,但...

    Spring 定时任务源码(spring 三种定时任务的实现方式)

    在Spring框架中,定时任务是实现系统自动化运行关键任务的重要工具。Spring提供了多种方式来创建和管理定时任务,...在chapter13目录下的文件可能包含了这些源码示例,你可以逐一研究,加深对Spring定时任务的理解。

    spring定时任务依赖的jar包

    2. **依赖的jar包**:实现Spring定时任务,通常需要以下10个关键的jar包: - `spring-context`: 包含了Spring的核心功能,如依赖注入(DI),AOP,事件处理等,是实现定时任务的基础。 - `spring-context-support`: ...

    Quartz+spring定时任务demo

    在 "Quartz+spring定时任务demo" 中,我们首先需要了解如何配置和集成 Quartz 与 Spring。这通常包括以下步骤: 1. **引入依赖**:在项目中添加 Quartz 和 Spring 相关的 jar 包。描述中提到的 "1128266338845696....

    Spring整合Quartz后的简单定时任务示例

    本资源"Spring整合Quartz后的简单定时任务示例"提供了如何将这两者结合使用的实例,旨在帮助开发者实现基于Spring的定时任务功能。 首先,我们要理解Spring对定时任务的支持。Spring框架通过`@Scheduled`注解提供了...

    Spring Quartz 动态暂停、恢复、修改定时任务

    Spring Quartz 动态暂停、恢复、修改定时任务的一个demo,使用maven构建,框架采用spring springmvc jpa,数据库mysql,含数据库脚本,运行可用,页面访问地址http://localhost:8080/quartz_demo/quartz/list

Global site tag (gtag.js) - Google Analytics