ssm+quartz创建定时任务

xiaoxiao2021-02-28  104

1.在项目中导入jar包(之前看资料,别人说Spring框架自带quartz,直接可以使用,但自己实践时发现有几个方法不存在,所以就下载jar包导入了)

aopalliance.jar  aspectjrt.jar  aspectjweaver.jar  commons-beanutils-1.9.2.jar  commons-codec-1.9.jar  commons-collections-3.2.1.jar  commons-dbcp-1.4.jar  commons-fileupload-1.3.1.jar  commons-io-2.4.jar  commons-lang-2.6.jar  commons-logging-1.2.jar  commons-net-3.1.jar  commons-pool-1.6.jar  commons-pool2-2.2.jar  druid-1.0.9.jar  fastjson-1.1.39.jar  freemarker-2.3.19.jar  hamcrest-core-1.3.jar  jackson-all-1.9.5.jar  jboss-logging-3.1.0.CR2.jar  jettison-1.0.1.jar  jstl-1.1.2.jar  junit-4.11.jar  log4j-1.2.17.jar  log4j-over-slf4j-1.7.7.jar  mybatis-3.2.6.jar  mybatis-spring-1.2.2.jar  mysql-connector-java-5.1.30-bin.jar  servlet-api.jar  slf4j-api-1.7.7.jar  slf4j-ext-1.7.7.jar  spring-aop-4.0.2.RELEASE.jar  spring-aspects-4.0.2.RELEASE.jar  spring-beans-4.0.2.RELEASE.jar  spring-context-4.0.2.RELEASE.jar  spring-context-support-4.0.2.RELEASE.jar  spring-core-4.0.2.RELEASE.jar  spring-expression-4.0.2.RELEASE.jar  spring-jdbc-4.0.2.RELEASE.jar  spring-oxm-4.0.2.RELEASE.jar  spring-test-4.0.2.RELEASE.jar  spring-tx-4.0.2.RELEASE.jar  spring-web-4.0.4.RELEASE.jar  spring-webmvc-4.0.2.RELEASE.jar  standard-1.1.2.jar

Spring的jar包自然是必须的,然后在quartz官网下载jar包(Quartz 2.1.7),解压后导入下面两个包。

 

2.在Spring的配置文件头部定义以下信息

<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:task="http://www.springframework.org/schema/task"     xsi:schemaLocation="         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd         http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd ">

3.写好自己需要执行的业务逻辑代码

1 package com.msq; 2 3 public class TestJobTask{ 4 /** 5 *业务逻辑处理 6 */ 7 public void service(){ 8 /**业务逻辑*/ 9 System.out.println(System.currentTimeMillis()); 10 } 11 }

4.在Spring里面继续作如下配置:

1 <!-- 定时任务start --> 2 3 <!-- 线程执行器配置,用于任务注册 --> 4 <bean id="executor" 5 class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> 6 <property name="corePoolSize" value="10" /> 7 <property name="maxPoolSize" value="100" /> 8 <property name="queueCapacity" value="500" /> 9 </bean> 10 11 <!-- 业务对象 --> //1.配置任务类 12 <bean id="testJobTask" class="com.msq.TestJobTask" /> 13 14 <!-- 调度业务 --> //2.配置任务类描述 15 <bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> 16 <property name="targetObject" ref="testJobTask" /> //任务目标类 17 <property name="targetMethod" value="service" /> //任务目标方法 18 </bean> 19 20 <!-- 增加调用的触发器,触发时间 并注入到调度工厂--> //3.配置触发器,将触发器注入到调度工厂 21 <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> 22 <property name="jobDetail" ref="jobDetail" /> //任务类 23 <property name="cronExpression" value="0/5 * * * * ? *" /> //cron表达式I 24 </bean> 25 26 <!-- 设置调度工厂 注入触发器--> 27 <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 28 <property name="triggers"> 29 <list> 30 <ref bean="cronTrigger" /> 31 </list> 32 </property> 33 <property name="taskExecutor" ref="executor" /> 34 </bean> 35 36 <!-- 定时任务end --> 到此,就配置完了,部署项目到Tomcat,就可以运行了,可以看到在控制台每隔五秒就会输出当前时间
转载请注明原文地址: https://www.6miu.com/read-55584.html

最新回复(0)