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. 多层for循环嵌套,如何能优化一点点,从运行时间维度

    将循环次数多的放在最内层,循环次数最少的放在最外层 换句话说,按照循环次数从小到大依次嵌套

  2. 轻松获取LAMP,LNMP环境编译参数配置

    轻松获取LAMP,LNMP环境编译参数配置 作者:Mr.Xiong /分类:系统管理  字号:L M S     大家是否遇到过去了新公司,公司内的LAMP,LNMP等所有的环境都是配置好的(已经在提 ...

  3. 【NOIP2016提高A组模拟8.15】Throw

    题目 分析 首先对于一个状态(a,b,c),假定a<=b<=c: 现在考虑一下这个状态,的转移方案: \[1,中间向两边跳(a,b,c)-->(a*2-b,a,c).(a,b,c)- ...

  4. React Native中集成友盟社会化分享-----童叟无欺

    1.下载所需的jar,下载地址https://developer.umeng.com/sdk/reactnative?spm=a211g2.211692.0.0.28967d238GW6mC 2.将以 ...

  5. SQL基础测试

    SQL 测验 结果:20/20 您的回答: 1.SQL 指的是? 您的回答:Structured Query Language 2.哪个 SQL 语句用于从数据库中提取数据? 您的回答:SELECT ...

  6. 【转】Django之Model层的F对象,Q对象以及聚合函数

    转自:https://blog.csdn.net/wsy_666/article/details/86692050 一.F对象: 作用:用于处理类属性(即model的某个列数据),类属性之间的比较.使 ...

  7. CloudSim学习

    CloudSim CloudSim是墨尔本大学云计算和分布式系统实验室推出的云计算模拟软件.它可以使研究者规避实际部署的诸多不便(比如说资金缺乏等因素),在单机上即可实现对大规模云集群的模拟和相应算法 ...

  8. Python3学习笔记(四):序列

    一.序列概览 Python 包含6 种内建的序列:列表,元组,字符串,Unicode字符串,buffer对象和xrange对象.这里重点讨论最常用的两种类型:列表和元组. 列表与元组的主要区别在于: ...

  9. Java网络编程之Netty服务端ChannelOption.SO_BACKLOG配置

    ChannelOption.SO_BACKLOG对应的是tcp/ip协议listen函数中的backlog参数,函数listen(int socketfd,int backlog)用来初始化服务端可连 ...

  10. Loadrunner参数化避免重复数据

    1.我们性能测试过程中经常遇到需要创建很多数据来运行测试场景,但是如果数据准备不够多,可能会造成数据不够用,导致场景运行失败,下面简单的例子: 2.我们对用户名分别使用VuserID和lteratio ...