SSM框架整合 quartz 定时任务调度

来源:互联网 发布:知乎精华故事 编辑:程序博客网 时间:2024/05/29 09:07

maven的pom.xml

    <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>4.2.4.RELEASE</version>          </dependency> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

spring的applicationContext.xml的配置信息:

    <!-- 定义一个任务类 -->    <bean id="myJob" class="com.zntz.web.job.myjob"></bean>    <!-- jobDetail -->    <bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">        <property name="targetObject" ref="myJob"></property>        <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/10 * * * * ?"></property>    </bean>    <bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">        <property name="triggers">           <list>                <ref bean="cronTrigger"/>           </list>        </property>    </bean>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

一个普通的类,没有继承任何类和实现任何接口

public class myjob {    public void execute(){        System.out.println("Quartz的任务调度!!!"+(new Date()).toString());    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

因为配置了concurrent等于false,所以假如run方法的执行时间超过10秒,在执行完之前即使时间已经超过了10秒下一个定时计划执行任务仍不会被开启,如果是true,则不管是否执行完,时间到了都将开启。