`
wangrl
  • 浏览: 148792 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Quartz 框架快速入门(三)

 
阅读更多

Quartz 框架快速入门(三)

     在前面两篇文章中简单介绍了在 java 应用程序中如何使用 Quartz 框架,这一篇中我们将看到如何在 web 环境下通过配置文件来完成 Quartz 的后台作业调度,而不必手工去创建 Trigger Scheduler ,其步骤如下:

首先创建一个 Web 项目,将 quartz-1.6.0.jar, 以及 lib 目录下面 core 下所有 jar optional 目录下的所有 commons-beanutils.jar commons-digester-1.7.jar build 目录下的 jta.jar 都放入 Web 项目的 WEB-INF"lib 目录下。

创建一个简单的 job HelloWorld ,它的功能很简单,就是输出当前的时间,代码如下:

package  com.vista.quartz;

import  java.util.Date;

import  org.apache.commons.logging.Log;
import  org.apache.commons.logging.LogFactory;
import  org.quartz.Job;
import  org.quartz.JobExecutionContext;
import  org.quartz.JobExecutionException;

public   class  Helloworld  implements  Job
{
    
private   static  Log logger  =  LogFactory.getLog(Helloworld. class ); // 日志记录器
     public  Helloworld()
    {
    }
    
public   void  execute(JobExecutionContext context)  throws  JobExecutionException 
    {
        logger.info(
" Hello World! -  "   +   new  Date()); 
    }
}

然后按照上一篇文章《 Quartz 框架快速入门(二) 》中所讲述的内容 编写 quartz.properties 文件。如果启动项目的时候, Quartz 没有在工程中找到该文件,就会从自己的 jar 包下面读取其默认的 properties 文件,其内容如下

#============================================================================
# Configure Main Scheduler Properties  
#============================================================================
org.quartz.scheduler.instanceName = QuartzScheduler
org.quartz.scheduler.instanceId = AUTO
#============================================================================
# Configure ThreadPool  
#============================================================================
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 5
org.quartz.threadPool.threadPriority = 5
#============================================================================
# Configure JobStore  
#============================================================================
org.quartz.jobStore.misfireThreshold = 60000
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
#============================================================================
# Configure Plugins 
#============================================================================
org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingJobHistoryPlugin
org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
org.quartz.plugin.jobInitializer.fileNames = jobs.xml
org.quartz.plugin.jobInitializer.overWriteExistingJobs = true
org.quartz.plugin.jobInitializer.failOnFileNotFound = true
org.quartz.plugin.jobInitializer.scanInterval = 10
org.quartz.plugin.jobInitializer.wrapInUserTransaction = false

然后编写任务配置文件 jobs.xml ,内容如下:

<? xml version='1.0' encoding='utf-8' ?>
< quartz  xmlns ="http://www.opensymphony.com/quartz/JobSchedulingData"
  xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation
="http://www.opensymphony.com/quartz/JobSchedulingData
  http://www.opensymphony.com/quartz/xml/job_scheduling_data_1_5.xsd"

  version
="1.5" >    
 
< job >       
    
< job-detail >       
     
< name > HelloWorld </ name >       
     
< group > DEFAULT </ group >       
     
< description >       
           A job that just for test       
     
</ description >       
     
< job-class >       
            com.vista.quartz.Helloworld      
     
</ job-class >       
     
< volatility > false </ volatility >       
     
< durability > false </ durability >       
     
< recover > false </ recover >           
  
</ job-detail >       
  
< trigger >       
    
< simple >       
     
< name > HelloTrigger1 </ name >       
     
< group > DEFAULT </ group >       
     
< job-name > HelloWorld </ job-name >       
     
< job-group > DEFAULT </ job-group >       
     
< start-time > 2008-09-03T15:56:30 </ start-time >       
     
<!--  repeat indefinitely every 10 seconds  -->       
     
< repeat-count > -1 </ repeat-count >       
     
< repeat-interval > 10000 </ repeat-interval >       
    
</ simple >       
  
</ trigger >       
</ job >       
</ quartz >

可以看到,在配置文件中把 jobdetail trigger 都作了完整的定义,并组合成一个 job 。下面,我们把上面两个文件都放入 /WEB-INF/classes 目录下,然后按照 api 中的说明修改一下 web.xml ,内容如下

<? xml version="1.0" encoding="UTF-8" ?>
< web-app  version ="2.4"  
    xmlns
="http://java.sun.com/xml/ns/j2ee"  
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"  
    xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>
    
< servlet >   
        
< servlet-name > QuartzInitializer </ servlet-name >   
        
< display-name > Quartz Initializer Servlet </ display-name >
        
< servlet-class >   
             org.quartz.ee.servlet.QuartzInitializerServlet  
        
</ servlet-class >   
        
< load-on-startup > 1 </ load-on-startup >   
        
< init-param >   
            
< param-name > config-file </ param-name >   
            
< param-value > /quartz.properties </ param-value >   
        
</ init-param >   
        
< init-param >   
            
< param-name > shutdown-on-unload </ param-name >   
            
< param-value > true </ param-value >   
       
</ init-param >   
    
</ servlet >   
  
< welcome-file-list >
    
< welcome-file > index.jsp </ welcome-file >
  
</ welcome-file-list >
</ web-app >

这样,在启动 Tomcat 的时候, QuartzInitializerServlet 这个 Servlet 就会自动读取 quartz.properties 这个配置文件,并初始化调度信息,启动 Scheduler

启动 tomcat 后,就可以看到输出的结果 :

作者:洞庭散人

出处:http://phinecos.cnblogs.com/     

本博客遵从Creative Commons Attribution 3.0 License ,若用于非商业目的,您可以自由转载,但请保留原作者信息和文章链接URL。

分享到:
评论

相关推荐

    Quartz框架快速入门

    Quartz框架快速入门Quartz框架快速入门

    Quartz 框架快速入门

    Quartz 框架快速入门 在前面两篇文章中简单介绍了在java应用程序中如何使用Quartz框架,这一篇中我们将看到如何在web环境下通过配置文件来完成Quartz的后台作业调度,而不必手工去创建Trigger和Scheduler

    Quartz框架快速入门.pdf

    Quartz框架快速入门.pdf

    Quartz 框架快速入门(一)

    NULL 博文链接:https://wangrl.iteye.com/blog/1125327

    Quartz_框架快速入门

    调度器基本使用,了解quartz的基本使用方法

    分布式调度框架quartz从入门到精通

    本文档包含以下章节:1、quartz简介;2、quartz快速入门;3、quartz核心API详解;4、quartz.properties配置详解;5、quartz持久化;6、quartz集群部署;7、springboot整合quartz。8、常见分布式调度框架的比较;

    Quartz如何从入门到精通

    Quartz是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。

    Quartz中文入门教程

    Quartz中文入门教程 前言 Quartz让任务调度简单 Quartz的发展史 上手Quartz Quartz内部架构 作业 作业管理和存储 有效作业存储 ...Quartz框架的其他特征 Quartz下一步计划 了解更多Quartz特征

    quartz入门到精通

    定时器框架学习资料,入门手册,新手专用!帮你快速入门开发搭建自己的定时器框架环境

    Java框架介绍Quartz从入门到进阶

    Java框架介绍Quartz从入门到进阶的文档介绍

    Java框架介绍Quartz从入门到进阶.pdf

    Java框架介绍Quartz从入门到进阶.pdf

    quartz1.6.6 实例

    这是一个本人自主编写的quartz调度框架的入门实例,非常简单,无配置文件,纯java调度,main 方法执行,控制台输出,可作为quartz框架的入门学习使用

    quartz PPT入门精心制作

    这份quartz ppt作者专门为入门学习quartz的赌注精心制作,包含了quartz的api详细解读,集群搭建等

    Quartz学习资料

    Quartz入门和Quartz开发指南

    Quartz入门到精通 中文WORD版.rar

    Quartz是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群...

    Quartz(作业调度)

    1.spring框架使用任务调度quartz的例子。 2.Web App用Quartz实现java schedule 3.详细讲解Quartz如何从入门到精通 4.用 Quartz 进行作业调度

    JAVA定时调度框架-Quartz使用入门到精通.doc

    一个很好的调度工具学习资料,可以定时调用发送短信,上传文件等功能,JAR包后面有

    详细讲解Quartz如何从入门到精通下载

    Quartz是一个开源的作业调度框架,它完全由 Java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很 多特征,如:数据库支持,...

Global site tag (gtag.js) - Google Analytics