SSM整合Quartz定时器

Quartz 是一个完全由 Java 编写的开源作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。

Quartz 可以与 J2EE 与 J2SE 应用程序相结合也可以单独使用。

Quartz 允许程序开发人员根据时间的间隔来调度作业。

Quartz 实现了作业和触发器的多对多的关系,还能把多个作业与不同的触发器关联。

闲言少叙,书归正传!!!!!

一、依赖导入

<!-- 定时任务 -->
    <dependency>
      <groupId>org.quartz-scheduler</groupId>
      <artifactId>quartz</artifactId>
      <version>2.2.1</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context-support</artifactId>
      <version>${spring.version}</version>
    </dependency>

 这两个只是定时器所需要的依赖,spring、springMVC、mabatis等你需要的依赖还需要自己去配置。

一、quartz.properties配置文件(可直接赋值拿去用)

# the job scheduler name
org.quartz.scheduler.instanceName=MyScheduler

# auto set the instance id
org.quartz.scheduler.instanceId=AUTO

# the job thread in thread pool, which means the max threads can run in the same time
org.quartz.threadPool.threadCount=1

# the thread's priority
org.quartz.threadPool.threadPriority = 5

# the job data storage is memory but not database
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore

# the max delay for the task execute speed time, set 2 minutes
#org.quartz.jobStore.misfireThreshold = 120000

# auto create the parent thread
#org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=true

二、spring.xml配置文件中配置定时器的对象

<!-- 定义一个任务类 -->
    <bean id="MyJob" class="com.offcn.quartz.MyJob"></bean>

    <!-- jobDetail -->
    <bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <!--ref中是自定义的类-->
        <property name="targetObject" ref="MyJob"></property>
        <!--value是自定义类MyJob中的方法名-->
        <property name="targetMethod" value="execute"></property>
        <property name="concurrent" value="false" /><!-- 作业不并发调度  -->
    </bean>

    <!-- 定义trigger 触发器 -->
    <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="jobDetail"></property>
        <property name="cronExpression" value="0/5 * * * * ?"></property>
    </bean>

    <bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="configLocation" value="classpath:quartz.properties" />
        <property name="overwriteExistingJobs" value="true" />
        <property name="autoStartup" value="true" />
        <property name="triggers">
            <list>
                <ref bean="cronTrigger"/>
            </list>
        </property>
    </bean>

三、MyJob类

package com.offcn.quartz;

import java.util.Date;

public class MyJob{
    public void execute(){
        System.out.println("测试定时器"+new Date());
    }
}

四、总结

        在SSM框架中使用Quartz定时器时,一定不要忘记匹配值web.xml文件,我在测试定时器功能时,因为没有配置web.xml文件,所以走了很长一段弯路,希望各位不要和我一样。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皇正经

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值