Spring 4 + Quartz 集成举例

Step 1: Configure Jobs in Quartz Scheduler

A : Using MethodInvokingJobDetailFactoryBean


1

2

3

4

5

6

7

8

<bean id="simpleJobDetail"

        class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

        <property name="targetObject">

            <bean class="com.job.Task" />

        </property>

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

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

    </bean><br>


1

<strong><br><br>targetObject 要执行的类</strong>


1

<strong>targetMethod 要执行类当中的方法</strong>


1

<strong>concurrent 是否立即马上执行(当,类实例化后)</strong>


1

<strong> </strong>

B : Using JobDetailFactoryBean


1

2

3

4

5

6

7

8

9

10

<bean id="complexJobDetail"

        class="org.springframework.scheduling.quartz.JobDetailFactoryBean">

        <property name="jobClass" value="com.scheduled.ScheduledJob" />

        <property name="jobDataMap">

            <map>

                <entry key="task" value-ref="task"></entry>

            </map>

        </property>

        <property name="durability" value="true" />

    </bean>

jobClass 配置任务要执行的类

jobDataMap 配置执行类当中的参数设置

Step 2: Configure Triggers to be used in Quartz Scheduler

A: Simple Trigger , using SimpleTriggerFactoryBean


1

2

3

4

5

6

<bean id="simpleTrigger"

        class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">

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

        <property name="startDelay" value="1000" />

        <property name="repeatInterval" value="2000" />

    </bean>

repeatInterval: 这中触发器方式,配置的时间,2秒钟触发一次。

B: Cron Trigger , using CronTriggerFactoryBean


1

2

3

4

5

<bean id="cronTrigger"

        class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">

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

        <property name="cronExpression" value="0/5 * * ? * SAT-SUN" />

    </bean>

 cronExpression:

一些cron表达式的例子
表   达   式                 意     义
0 0 10,14,16 * * ?                     每天上午10点,下午2点和下午4点
0 0,15,30,45 * 1-10 * ?                每月前10天每隔15分钟
30 0 0 1 1 ? 2012                      在2012年1月1日午夜过30秒

Step 3: Configure SchedulerFactoryBean that creates and configures Quartz Scheduler


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

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

        <property name="jobDetails">

            <list>

                <ref bean="simpleJobDetail" />

                <ref bean="complexJobDetail" />

            </list>

        </property>

        <property name="triggers">

            <list>

                <ref bean="simpleTrigger" />

                <ref bean="cronTrigger" />

            </list>

        </property>

    </bean>

最后集成起来。

配置要求:

spring 4以上的版本

quartz 2以上的版本

jdk 1.6 以上的版本

时间: 2024-10-18 09:58:41

Spring 4 + Quartz 集成举例的相关文章

Spring进阶-怎样集成定时调度Quartz

在一些项目里面比如进销存系统,对一些过期图片的定时清理或者库存不足发出预警提示,就需要用到定时调度技术. 每当经过一段时间,程序会自动执行,就是定时调度.如果要使用定时调度,则必须保证程序始终运行才行哦,也就是说定时调度是在程序之外又启动了一个新的线程.那么怎样才能实现定时调度呢? 方案一:可以使用JDK自带的java.util.Timer对象.可以创建定制的timer或者调用某些方法的timer.包装timer的工作由Spring TimerFactoryBean完成,不过这种方法不能准确设置

spring整合quartz

Quartz 介绍 Quartz is a full-featured, open source job scheduling service that can be integrated with, or used along side virtually any Java application - from the smallest stand-alone application to the largest e-commerce system. Quartz can be used to

Spring.Scheduling.Quartz的使用

最近因使用Spring.Net框架而接触.了解到其与Quartz.Net的集成,即Spring.Scheduling.Quartz模块. Spring通过对Quartz.Net的封装,采用了spring核心注入思路,给我们提供更为简单.便利的使用方式.当然直接使用Quartz.Net也是可以的. 在使用的过程中Spring.Net版本为1.3.2,而该版本的Spring.Scheduling.Quartz只支持Quartz.Net(1.0.3版),无法支持Quartz.Net(>=2.0.1版)

Quartz集成springMVC 的方案一

Quartz是一个开放源码项目,专注于任务调度器. springMVC 具体的搭建框架就不具体说明,接下来直接描述把Quartz集成到springMVC 框架中. 步骤: 1.引入所需要的jar包 2.新建要定时做的事情的具体实现类和方法,这边可以实现多个类和方法,只要spring-quartz.xml文件中配置任务几个并对应的实现类和方法. public class DataButtServiceImpl { public void run() { //定时要做的事情的具体实现 } } 2.新

spring与quartz整合实现分布式动态创建,删除,改变执行时间定时任务(mysql数据库)

背景:因为在项目中用到了定时任务,当时想到了spring的quartz,写完发现费了很大功夫,光是整合就花了一上午,其中最大的问题就是版本问题,项目中用的是spring3.2.8的版本,查阅发现,3.0以上的版本需要使用quartz2.X以上版本,我就去官网下载了2.1.7的quartz,结果发现jar包与spring冲突,最后使用了quartz1.6.0版本. spring与quartz整合第一步需要导jar包,这个在百度搜下quartz的jar,下载一个 第二步:分布式定时任务,是基于数据库

Spring与Quartz使用说明 job不同步执行(第一个job完成后才开始第二个job)

转自:http://blog.sina.com.cn/s/blog_675e9aeb0100qghp.html 最 近因为项目后台需要使用一个线程去定时跑一些任务,所以看了一下Spring和Quartz的使用与集成.例如发短信.邮件.根据实际使用,此集成使用比 自己去写线程方便和灵活,可以不用代码实现复杂的计划任务,如“1月份的每周三.周五的早上9点至10点每5钟一次任务”.所以分享一下. Quartz官方网址:http://www.quartz-scheduler.org/ 集成方法 集成起来

细说shiro之五:在spring框架中集成shiro

官网:https://shiro.apache.org/ 1. 下载在Maven项目中的依赖配置如下: <!-- shiro配置 --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>${version.shiro}</version> </dependency&g

Spring整合Quartz实现定时任务调度

一. 核心类 1. Job: 表示一个工作, 具体的业务处理都在这里. 2. JobDetail: 表示一个具体的可执行的调度程序. 3. Trigger: 用于调度参数的配置(什么时候去调用Job). 4. Scheduler: 表示一个调度容器, 容器中有一个线程池, 用来并行调度执行每个作业, 一个调度容器中可以注册多个JobDetail和Trigger. 二. 整合spring 1. 代码结构图: 2. applicationContext.xml <?xml version="1

菜鸟调错(四)——Spring与DWR集成,配置文件报错

背景简介: 该项目是市信用办的一个系统,之前好像是一个石家庄的公司负责的.我属于是半路接手.拿到源码后,根据他们给的简(shao)单(de)明(ke)了(lian)的说明把项目搭起来.结果可想而知,项目文件一片红.于是就开始解决这些错误,好在很多错误都是类似的.经过一番捣鼓,大部分的错误都解决了,有一个Spring跟DWR集成配置的错误,错误信息如下: Multiple annotations found at this line: - schema_reference.4: Failed to