zoukankan      html  css  js  c++  java
  • Quartz任务调度的测试Demo1(含有配置文件的demo)

    Quartz是一个作业任务调度的框架,所在项目组中“消息推送模块”使用到此框架,于是写个demo熟悉下quart的用法;

    使用Spring框架来集成Quartz的任务调度任务。

    1、搭建Spring框架,Quartz框架

      1.1、拷贝Spring框架、Quartz所需要的jar包(quartz.jar);

      1.2、在整个项目的web.xml主配置中添加spring的核心配置(监听spring、核心配置)

     <context-param>  <!--spring核心配置文件-->
            <param-name>contextConfigLocation</param-name>  
            <param-value>/WEB-INF/spring-config.xml</param-value>  
        </context-param>  
        <listener>  <!--spring的监听-->
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
        </listener>  

      1.2、spring配置文件的创建:spring-config.xml

    <beans>
        <!-- 要调用的工作类 -->
        <bean id="quartzJob" class="com.fdx.QuartzJob"></bean>
        <!-- 定义调用对象和调用对象的方法 -->
        <bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
            <!-- 调用的类 -->
            <property name="targetObject"><ref bean="quartzJob" /></property>
            <!-- 调用类中的方法 -->
            <property name="targetMethod"><value>work</value></property>
        </bean>
        <!-- 定义触发时间 -->
        <bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
            <property name="jobDetail"> <ref bean="jobtask" /></property>
            <property name="cronExpression"> <value>0/10 * * * * ?</value> </property><!-- cron表达式 -->
      </bean>
      <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
      <bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers"> <list> <ref bean="doTime" /> </list> </property>
      </bean>
    </beans>

      1.3、工作类

    package com.fdx;
    import java.util.Date;
    public class QuartzJob {
        public void work() {
            System.out.println("Quartz的任务调度!!!"+new Date());
         //在控制台会被作为“任务”推送给控制台的语句,隔一段时间会被打印在控制台 } }

      1.4、main类【启动整个定时任务的主类】

     1 package com.fdx;
     2 import org.springframework.context.ApplicationContext;
     3 import org.springframework.context.support.ClassPathXmlApplicationContext;
     4 public class MainTest {
     5     public static void main(String[] args)
     6     {
     7         System.out.println("Test start.");
     8         ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
     9         //如果配置文件中将startQuertz bean的lazy-init设置为false 则不用实例化
    10         //context.getBean("startQuertz");
    11         System.out.print("Test end..");
    12     }
    13 }

      1.5、控制台输出的结果如下:

    Test start.
    log4j:WARN No appenders could be found for logger (org.springframework.context.support.ClassPathXmlApplicationContext).
    log4j:WARN Please initialize the log4j system properly.
    Test end..
    Quartz的任务调度!!!Wed Jan 13 15:49:50 CST 2016
    Quartz的任务调度!!!Wed Jan 13 15:50:00 CST 2016
    Quartz的任务调度!!!Wed Jan 13 15:50:10 CST 2016
    Quartz的任务调度!!!Wed Jan 13 15:50:20 CST 2016
    Quartz的任务调度!!!Wed Jan 13 15:50:30 CST 2016
    Quartz的任务调度!!!Wed Jan 13 15:50:40 CST 2016
    Quartz的任务调度!!!Wed Jan 13 15:50:50 CST 2016
  • 相关阅读:
    Ext JS 6应用程序Build后出现“c is not a constructor return new c(a[0])”的处理
    安卓四大组件总览
    摆脱命令行,Ubuntu下配置Android开发环境
    【翻译】使用Sencha Ext JS创建美丽的图画(1)
    linux后台运行springboot项目
    AES地址栏传参加密
    最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等
    阿里云服务器+ftp文件操作+基于Centos7的vsftpd配置
    解决服务器发回了不可路由的地址。使用服务器地址代替的问题
    解决vsftpd的refusing to run with writable root inside chroot错误
  • 原文地址:https://www.cnblogs.com/FanSunny/p/5127531.html
Copyright © 2011-2022 走看看