今天我们学习一下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. 初看mysql源代码之mysql.cc

    在mysql的源代码目录中,sql目录是mysql源代码中经常变化的目录之一,也是MySQL服务器内核最为核心和重要的目录. sql目录除了包含mysqld.cc这一MySQL main函数所在文件外 ...

  2. 关于PDNN、Theano、Numpy以及Scipy的安装

    最近为了用下PDNN,先得安装这玩意,不装不知道,一装吓一跳,依赖关系也太多了吧,顿时有种贵圈真乱的感觉,如图1. 不过这B还得装下去. 图1 安装PDNN的依赖关系 之前也碰了好多问题,不过各种参考 ...

  3. C语言 · 简单加法

    算法提高 简单加法   时间限制:1.0s   内存限制:256.0MB      问题描述 小于10的自然数中有四个数字能除尽3或5(3, 5, 6, 9),它们的和为23. 请计算所有小于1000 ...

  4. jffs2系统制作2

    http://blog.chinaunix.net/uid-23208702-id-353022.html 1.2.   安装zlib库 由于交叉编译mtd工具时需要zlib.h文件,所以在编译之前先 ...

  5. html精灵技术(用来显示图片的某个区域)

    .left .left_down li.a.left-down-pic{display:block;width:50px;height:50px;background:url(images/app_i ...

  6. Intellij Idea14 jstl标签的引入

    习惯了eclipse和myeclipse开发的我们总是依赖于系统的插件,而当我想当然的以为IntelliJ IDEA 的jstl 的使用应该和myeclispe一样,当时使用起来却到处碰壁,完全找不到 ...

  7. nest(inner) class

    嵌套类,摘自: http://www.ntu.edu.sg/home/ehchua/programmin/java/J4a_GUI.html A nested class has these prop ...

  8. 【Java NIO的深入研究6】JAVA NIO之Scatter/Gather

    Java NIO开始支持scatter/gather,scatter/gather用于描述从Channel(译者注:Channel在中文经常翻译为通道)中读取或者写入到Channel的操作. 分散(s ...

  9. glsl 多重纹理

    #include"glsl.h" void SHADER::drawBox() { glBegin(GL_QUADS); // Front Face glNormal3f( 0.0 ...

  10. Bash 脚本 getopts为什么最后一个參数取不到

    看以下的Bash脚本: #!/bin/bash interval=0 count=0 pid="" while getopts "p:d:n" arg do c ...