今天我们学习一下quartz的定时器的使用。年轻时我们放弃,以为那只是一段感情,后来才知道,那其实是一生。

quartz的简单实例

测试的项目结构如下:

一、pom.xml中定义quartz的依赖

<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.3</version>
</dependency>

二、定义配置文件quartz.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 要调用的工作类 -->
<bean id="quartzJob" class="com.linux.huhx.quartz.QuartzJob"></bean>
<!-- 定义调用对象和调用对象的方法 -->
<bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 调用的类 -->
<property name="targetObject" ref="quartzJob" />
<!-- 调用类中的方法 -->
<property name="targetMethod" value="work" />
</bean>
<!-- 定义触发时间 -->
<bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="jobtask"/>
<!-- cron表达式 -->
<property name="cronExpression" value="10,15,20 * * * * ?" />
</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>

三、定义任务的执行主体类QuartzJob

package com.linux.huhx.quartz;

import org.springframework.context.Lifecycle;
import org.springframework.context.SmartLifecycle; /**
* Created by huhx on 2017-05-22.
*/
public class QuartzJob implements Lifecycle, SmartLifecycle { public void work() {
System.out.println("Quartz的任务调度!!!");
} @Override
public void start() {
System.out.println("I am start");
} @Override
public void stop() {
System.out.println("I am stop");
} @Override
public boolean isRunning() {
return false;
} @Override
public boolean isAutoStartup() {
return true;
} @Override
public void stop(Runnable callback) { } @Override
public int getPhase() {
return 0;
}
}

四、定义测试的主体类Main

public class Main {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("config/quartz.xml");
}
}

五、运行的结果如下:

I am start
::05.864 [main] DEBUG o.s.c.s.DefaultLifecycleProcessor - Successfully started bean 'quartzJob'
::05.864 [main] INFO o.s.c.s.DefaultLifecycleProcessor - Starting beans in phase
::05.864 [main] DEBUG o.s.c.s.DefaultLifecycleProcessor - Starting bean 'startQuertz' of type [class org.springframework.scheduling.quartz.SchedulerFactoryBean]
::05.865 [main] INFO o.s.s.quartz.SchedulerFactoryBean - Starting Quartz Scheduler now
::05.865 [main] INFO org.quartz.core.QuartzScheduler - Scheduler startQuertz_$_NON_CLUSTERED started.
::05.865 [main] DEBUG o.s.c.s.DefaultLifecycleProcessor - Successfully started bean 'startQuertz'
::05.870 [main] DEBUG o.s.c.e.PropertySourcesPropertyResolver - Could not find key 'spring.liveBeansView.mbeanDomain' in any property source
::05.881 [startQuertz_QuartzSchedulerThread] DEBUG o.quartz.core.QuartzSchedulerThread - batch acquisition of triggers
::10.010 [startQuertz_Worker-] DEBUG org.quartz.core.JobRunShell - Calling execute on job DEFAULT.jobtask
::10.010 [startQuertz_QuartzSchedulerThread] DEBUG o.quartz.core.QuartzSchedulerThread - batch acquisition of triggers
Quartz的任务调度!!!
::15.001 [startQuertz_Worker-] DEBUG org.quartz.core.JobRunShell - Calling execute on job DEFAULT.jobtask
::15.001 [startQuertz_QuartzSchedulerThread] DEBUG o.quartz.core.QuartzSchedulerThread - batch acquisition of triggers
Quartz的任务调度!!!
::20.001 [startQuertz_QuartzSchedulerThread] DEBUG o.quartz.core.QuartzSchedulerThread - batch acquisition of triggers
::20.001 [startQuertz_Worker-] DEBUG org.quartz.core.JobRunShell - Calling execute on job DEFAULT.jobtask
Quartz的任务调度!!!
::45.140 [startQuertz_QuartzSchedulerThread] DEBUG o.quartz.core.QuartzSchedulerThread - batch acquisition of triggers
::10.002 [startQuertz_Worker-] DEBUG org.quartz.core.JobRunShell - Calling execute on job DEFAULT.jobtask
::10.002 [startQuertz_QuartzSchedulerThread] DEBUG o.quartz.core.QuartzSchedulerThread - batch acquisition of triggers
Quartz的任务调度!!!
::15.001 [startQuertz_Worker-] DEBUG org.quartz.core.JobRunShell - Calling execute on job DEFAULT.jobtask
::15.001 [startQuertz_QuartzSchedulerThread] DEBUG o.quartz.core.QuartzSchedulerThread - batch acquisition of triggers
Quartz的任务调度!!!
::20.001 [startQuertz_QuartzSchedulerThread] DEBUG o.quartz.core.QuartzSchedulerThread - batch acquisition of triggers
::20.001 [startQuertz_Worker-] DEBUG org.quartz.core.JobRunShell - Calling execute on job DEFAULT.jobtask
Quartz的任务调度!!!
::47.376 [startQuertz_QuartzSchedulerThread] DEBUG o.quartz.core.QuartzSchedulerThread - batch acquisition of triggers
::10.011 [startQuertz_Worker-] DEBUG org.quartz.core.JobRunShell - Calling execute on job DEFAULT.jobtask
Quartz的任务调度!!!
::10.012 [startQuertz_QuartzSchedulerThread] DEBUG o.quartz.core.QuartzSchedulerThread - batch acquisition of triggers
::15.001 [startQuertz_Worker-] DEBUG org.quartz.core.JobRunShell - Calling execute on job DEFAULT.jobtask
::15.001 [startQuertz_QuartzSchedulerThread] DEBUG o.quartz.core.QuartzSchedulerThread - batch acquisition of triggers
Quartz的任务调度!!!
::20.002 [startQuertz_QuartzSchedulerThread] DEBUG o.quartz.core.QuartzSchedulerThread - batch acquisition of triggers
::20.002 [startQuertz_Worker-] DEBUG org.quartz.core.JobRunShell - Calling execute on job DEFAULT.jobtask
Quartz的任务调度!!!
.............

友情链接

java框架---->quartz整合spring(一)的更多相关文章

  1. JavaWeb_(Mybatis框架)MyBatis整合Spring框架

    MyBatis + Spring整合开发 a)使用Spring容器用单例模式管理Mybatis的sqlSessionFactory:b)使用Spring管理连接池.数据源等:c)将Dao/Mapper ...

  2. Java框架----SSH整合回顾

    1,新建工程,类型为Web Project,设置默认编码为UTF-8,并创建如下文件夹 1,Source Folder 1,src 项目源码 2,config 配置文件 3,test 单元测试 2,普 ...

  3. JMS(java消息服务)整合Spring项目案例

    转载自云栖社区 摘要: Sprng-jms消息服务小项目 所需的包: spring的基础包 spring-jms-xx包 spring-message–xx包 commons-collection-x ...

  4. java之mybatis整合spring

    这篇讲解spring+mybatis的整合. 目录结构: 一. 整合spring的第一种方法 1. 新建 java 项目 : spring_mybatis 2.导入jar 包-----spring和m ...

  5. quartz整合spring框架service层对象注入为null解决方案

    Job实现类代码 package cn.itcast.quartz; import org.quartz.Job; import org.quartz.JobExecutionContext; imp ...

  6. JAVA 框架 / SSM / SSM SPRING+SPING MVC + MYBATIS 三大框架整合详细步骤

    http://how2j.cn/k/ssm/ssm-tutorial/1137.html

  7. java框架---->quartz的使用(一)

    Quartz 是个开源的作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制.今天我们就来学习一下它的使用,这里会分篇章对它进行介绍.只是希望能有个人,在我说没事的时候,知道我不 ...

  8. 三大框架SSH整合

    三大框架SSH整合 -------------------------------Spring整合Hibernate------------------------------- 一.为什么要整合Hi ...

  9. 2020年9大顶级Java框架

    诞生于1995年的Java,目前已在134,861个网站上广泛使用,包括ESPN.SnapDeal等.在其24年的成长史中,Java已经证明了自己是用于自定义软件开发的顶级通用编程语言. Java广泛 ...

随机推荐

  1. (转)Linux下PS命令详解

    (转)Linux下PS命令详解 整理自:http://blog.chinaunix.net/space.php?uid=20564848&do=blog&id=74654 要对系统中进 ...

  2. oozie中使用sqoop导入hive表时提示hive找不到

    根据出错信息是找不到hive的位置,所以想到的解决方法是: 在sqoop的workflow中添加job-xml,属性写hive-site.xml在hdfs上的位置. (fail) 直接配置一个hive ...

  3. SpringMVC经典系列-15对SpringMVC的总结---【LinusZhu】

    注意:此文章是个人原创,希望有转载须要的朋友们标明文章出处,假设各位朋友们认为写的还好,就给个赞哈.你的鼓舞是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系linusz ...

  4. Web API(一);Restful架构

    一.什么是RESTful REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移.REST指的是一组架构约束条件和原则.如果一个 ...

  5. Ajax-ajax实例1-动态加载的 FAQ

    动态加载 FAQ 的过程主要是利用 XMLHttpRequest(以下简称 XHR)对象与服务端通信,根据用户单击的感兴趣问题动态将内容加载到页面中.在具体实现时,有两点要注意的内容. 1 .对每个问 ...

  6. VC dimension(Vapnik-Chervonenkis dimension)

    二维平面的线性分类器的VC维讨论:http://www.tuicool.com/articles/JjaMfe VC维介绍:http://blog.csdn.net/lucylove3943/arti ...

  7. C#多播委托/多播代理

    定义:委托是一种在对象里保存方法引用的类型,同时也是一种类型安全的函数指针.理解委托的一种方式可以把委托的作用当作是给方法签名指定名称.委托的定义类似于方法的定义,但没有方法体,定义的委托名前要加上关 ...

  8. hdu 4463 Outlets

    #include<bits/stdc++.h> using namespace std; double x[100+5],y[100+5]; double e[100+5][100+5]; ...

  9. 原型模式(prototype pattern)---------创造型模式

    原型模式的缺点: 1.需要为每一个类配备一个克隆方法,而且该克隆方法位于一个类的内部,当对已有的类进行改造时,需要修改源代码,违背了开闭原则(open-closed discipline) 2.在实现 ...

  10. 学习 TList 类的实现[7]

    总结目前 TMyList 已具备的功能(3 个方法.3 个属性): Add: 添加; Delete: 删除; Clear: 清空;Count: 元素总数;Capacity: 已存在的所有元素位置数;L ...