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类【启动整个定时任务的主类】

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

  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

Quartz任务调度的测试Demo1(含有配置文件的demo)的更多相关文章

  1. Quartz任务调度快速入门(转)

    转自http://www.blogjava.net/baoyaer/articles/155645.html 概述 了解Quartz体系结构 Quartz对任务调度的领域问题进行了高度的抽象,提出了调 ...

  2. Quartz任务调度快速入门

    Quartz任务调度快速入门 概述 了解Quartz体系结构 Quartz对任务调度的领域问题进行了高度的抽象,提出了调度器.任务和触发器这3个核心的概念,并在org.quartz通过接口和类对重要的 ...

  3. Quartz任务调度快速入门(转)

    概述 了解Quartz体系结构 Quartz对任务调度的领域问题进行了高度的抽象,提出了调度器.任务和触发器这3个核心的概念,并在org.quartz通过接口和类对重要的这些核心概念进行描述: ●Jo ...

  4. Quartz任务调度 服务日志+log4net打印日志+制作windows服务

    引言 现在许多的项目都需要定时的服务进行支撑,而我们经常用到的定时服务就是Quartz任务调度了.不过我们在使用定时Job进行获取的时候,有时候我们就需要记录一下自定义的日志,甚至我们还会对执行定时J ...

  5. Quartz任务调度:MisFire策略和源码分析

    Quartz是为大家熟知的任务调度框架,先看看官网的介绍: ---------------------------------------------------------------------- ...

  6. Quartz任务调度(3)存储与持久化操作配置详细解

    内存存储RAMJobStore Quartz默认使用RAMJobStore,它的优点是速度.因为所有的 Scheduler 信息都保存在计算机内存中,访问这些数据随着电脑而变快.而无须访问数据库或IO ...

  7. Spring研磨分析、Quartz任务调度、Hibernate深入浅出系列文章笔记汇总

    Spring研磨分析.Quartz任务调度.Hibernate深入浅出系列文章笔记汇总 置顶2017年04月27日 10:46:45 阅读数:1213 这系列文章主要是对Spring.Quartz.H ...

  8. (转)Quartz任务调度(1)概念例析快速入门

    http://blog.csdn.net/qwe6112071/article/details/50991563 Quartz框架需求引入 在现实开发中,我们常常会遇到需要系统在特定时刻完成特定任务的 ...

  9. Quartz任务调度(4)JobListener分版本超详细解析

    JobListener 我们的jobListener实现类必须实现其以下方法: 方法 说明 getName() getName() 方法返回一个字符串用以说明 JobListener 的名称.对于注册 ...

随机推荐

  1. chrome获取页面element的xPath

    chrome真的是强大的工具 1.在chrome打开的页面点击F12,进入开发者模式 2.点击弹出的开发者工具左上角的跟踪箭头,再点击需要跟踪的页面元素,html程序定位到元素在程序中位置 3.选中的 ...

  2. java常用类与包装类--常用类字符串String类、StringBuffer类、Stringbuilder类

    1.String类 1.1String类的概念和储存结构: (1)字符串是一个比较特殊的对象,可以使用new,也可以不使用new来创建字符串对象 String s1 = new String(&quo ...

  3. sourceTree 添加 ssh key 方法

    1.使用 git 客户的生成公私钥:id_rsa.id_rsa.pub 1.1设置Git的user name和email: $ git config --global user.name " ...

  4. 【Spring】Spring-Session-Data-Redis实现session共享

    前言 在开发中遇到一个关于用户体验的问题,每次当运维进行更新重启服务器时,都会导致会员平台中已登录的用户掉线.这是因为每个用户的会话信息及状态都是由session来保存的,而session对象是由服务 ...

  5. 【leetcode】Global and Local Inversions

    题目如下: We have some permutation A of [0, 1, ..., N - 1], where N is the length of A. The number of (g ...

  6. 查看SSL证书的别名

    1.把java目录下的keytool拷贝到证书目录下:2.进入证书目录,然后输入命令keytool -list -v -keystore file.jks -storepass password,发现 ...

  7. ubuntu 微信安装

    安装过程: 下载最新版本tar.gz压缩包https://github.com/geeeeeeeeek/electronic-wechat/releases/download/V2.0/linux-x ...

  8. mysql 创建用户和授权

    https://www.cnblogs.com/sos-blue/p/6852945.html

  9. 论文阅读:FlexGate: High-performance Heterogeneous Gateway in Data Centers

    摘要: 大型数据中心通过边界上的网关对每个传入的数据包执行一系列的网络功能,例如,ACL被部署来阻止不合格的流量,而速率限制被用于防止供应商过度使用带宽,但是由于流量的规模巨大,给网关的设计和部署带来 ...

  10. 源码阅读-SwiftyJSON

    最后更新:2018-03-19 一.说在前面的话: SwiftyJSON 作为一个 swift 的解析库, 在 Swift4 之前备受欢迎, 目前(2018.3.19) 已经有 1.6w+ Star ...