zoukankan      html  css  js  c++  java
  • spring整合quartz实现定时任务

    需求:spring+mybatis框架已经搭建好,需要实现一个定时任务。

    一:导出相应的jar包

    quartz-all-1.6.5.jar获取quartz-alll-1.6.6.jar

    spring-context-support.jar

    二:配置applicationContext.xml文件

    在<beans></beans>元素内配置如下内容

     1 <!--定时任务配置-->
     2     <!-- 定义调用对象和方法,以及是否并发处理-->
     3         <bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
     4             <property name="targetObject" ref="quartzServiceImpl"/>
     5             <property name="targetMethod" value="timeScan"/>
     6             <property name="concurrent" value="false"/>
     7         </bean>
     8         <!-- 定义触发时间 -->
     9         <bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
    10             <property name="jobDetail" ref="jobtask"/>
    11             <!-- cron表达式 -->
    12             <property name="cronExpression">
    13                 <value>5,10,15,20,25,30,35,40,45,50,55 * * * * ?</value>
    14             </property>
    15         </bean>
    16         <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序  -->
    17         <bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    18             <property name="triggers">
    19                 <list>
    20                     <ref bean="doTime"/>
    21                 </list>
    22             </property>
    23         </bean>
    24     

    其中:

    targetObject为定义的定时方法所在的类

    targetMethod为定时方法,在方法中可以写入定时执行的任务

    concurrent控制并发,如果value为false则表示不会并发执行,下一个job会推迟到上一个job执行结束

    定义触发时间:

    这里是在5秒、10秒........执行任务

    三:写具体的类和定时方法

     1 /**
     2  * @author Administrator 定时任务接口
     3  */
     4 @Service("quartzServiceImpl")
     5 public class QuartzServiceImpl implements QuartzService {
     6 
     7     /*
     8      * (non-Javadoc)
     9      * 
    10      * @see com.paic.service.QuartzService#timeScan() 定时扫描
    11      */
    12     @Override
    13     public void timeScan() {
    14         /**
    15          * 可以在这里写需要执行的任务
    16          */
    17         System.out.println("hello world!!!" + CommonUtil.getCurrSysTime());
    18     }
    19 
    20 }

    这样,在定时方法中即可写入要执行的任务。

  • 相关阅读:
    Markdown文档示例
    Python网络编程(一)
    JS之客户端检测
    MySQL 多表查询
    MySQL 单表查询
    MySQL 入门
    Python内置方法大全
    010 盒模型
    009 CSS选择器
    008 常用样式
  • 原文地址:https://www.cnblogs.com/warrior4236/p/5371974.html
Copyright © 2011-2022 走看看