`
smartzhengyijun
  • 浏览: 3962 次
社区版块
存档分类
最新评论

quartz定时器的使用

阅读更多
1.下载Quartz,我下载的是1.8.5,将quartz-all-1.8.5拷贝到web项目的lib目录中。除此之外还需要将以下

    jta-1.1
    log4j-1.2.14
    slf4j-api-1.6.1
    slf4j-nop-1.5.2
    slf4j-log4j12-1.6.1
    commons-beanutils-1.7.0.jar
    commons-collections-3.1.jar
    commons-logging-1.0.4.jar

拷贝到web项目的lib目录中,不然会启动tomcat会产生如下错误:

#缺少log4j-1.2.14,slf4j-api-1.6.1,slf4j-log4j12-1.6.1
java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
#缺少jta-1.1
javax/transaction/UserTransaction at java.lang.Class.getDeclaredMethods0(Native Method)

2.新建一个任务类,需要实现Quartz的Job接口。

package me.hujun.demo.quartz;

import java.util.Date;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class MyJob implements Job {
        @Override
        public void execute(JobExecutionContext arg0) throws JobExecutionException {
                System.out.println("Start MyJob at " + new Date());
        }

}

3.在src目录下新建quartz.properties,这个文件可以直接充quartz的jar包中拷贝。但需要加入两行新的内容,分别用来指定jobInitializer class和jobInitializer需要解析的配置文件路径(清单的最后两行配置)。

#============================================================================ 
# Configure Main Scheduler Properties   
#============================================================================ 
org.quartz.scheduler.instanceName = TestScheduler 
org.quartz.scheduler.instanceId = AUTO 
#============================================================================ 
# Configure ThreadPool   
#============================================================================ 
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool 
org.quartz.threadPool.threadCount = 3 
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 = quartz_jobx.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 
 
#org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin 
org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin  
org.quartz.plugin.jobInitializer.fileNames = quartz_jobs.xml 
org.quartz.plugin.jobInitializer.failOnFileNotFound = true 
org.quartz.plugin.shutdownhook.class = org.quartz.plugins.management.ShutdownHookPlugin 
org.quartz.plugin.shutdownhook.cleanShutdown =true 

4.编写quartz_job.xml(上述清单中org.quartz.plugin.jobInitializer.fileNames的值),配置job和trigger。
<?xml version="1.0" encoding="UTF-8"?>
<job-scheduling-data xmlns="http://www.quartz-scheduler.org/xml/JobSchedulingData"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.quartz-scheduler.org/xml/JobSchedulingData http://www.quartz-scheduler.org/xml/job_scheduling_data_1_8.xsd"
  version="1.8">
<schedule>
  <job>
   <name>my_job</name>
   <group>DEFAULT</group>
   <description>
    this is HelloWorld......
   </description>
   <job-class>org.hzy.jobs.My_Job</job-class>
  </job>
  <trigger>
<cron>
  <name>my_job_trigger</name>
  <job-name>my_job</job-name>
  <cron-expression>0/10 * * * * ?</cron-expression>
</cron>
  </trigger>
</schedule>
</job-scheduling-data>
5.修改web.xml。

<servlet>
                <servlet-name>quartz</servlet-name>
                <servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class>
                <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>

     <init-param> 
         <param-name>start-scheduler-on-load</param-name> 
         <param-value>true</param-value> 
     </init-param>
                <load-on-startup>1</load-on-startup>
        </servlet>

或启用监听器QuartzInitializerListener

<context-param>
         <param-name>config-file</param-name>
         <param-value>/some/path/my_quartz.properties</param-value>
     </context-param>
     <context-param>
         <param-name>shutdown-on-unload</param-name>
         <param-value>true</param-value>
     </context-param>
     <context-param>
         <param-name>start-scheduler-on-load</param-name>
         <param-value>true</param-value>
     </context-param>
    
     <listener>
         <listener-class>
             org.quartz.ee.servlet.QuartzInitializerListener
         </listener-class>
     </listener>


6.启动tomcat

分享到:
评论

相关推荐

    [Quartz]Quartz定时器的j2ee系统使用

    Quartz的Hibernate模型 博文链接:https://xmkevinchen.iteye.com/blog/196392

    MVC Quartz定时器使用

    开发中,经常遇到需要定时执行某个任务的需要。可以用数据库的计划任务完成,也可以用代码完成。.net环境下的Quartz就是非常好的解决方案。Quartz有自己的语言,类似正则也有表达的方式,还是需要学习一下的。

    Spring Quartz 定时器示例(Web工程版)

    Spring Quartz 定时器示例(Web工程版),欢迎下载。

    Quartz定时器介绍与简单使用

    ### Quartz定时器介绍与简单使用 #### 1.1 Quartz介绍 Quartz 是一款功能强大的开源任务调度框架,它完全采用 Java 编写而成。该框架允许开发人员以灵活的方式定义作业及其触发规则,从而实现对任务的定时调度。...

    quartz定时器源码jar包下载

    作为一个专业的IT行业大师,我很高兴为你解析Quartz定时器的核心概念、功能以及如何通过源码学习。 Quartz定时器允许开发者创建、调度和管理任务,这些任务可以是简单的函数调用或者复杂的业务流程。它支持多种调度...

    quartz 定时器

    #### 二、Quartz定时器使用实践 1. **Job接口**: - **接口定义**:`Job`接口只有一个方法`void execute(JobExecutionContext context)`。 - **任务执行**:Quartz在每次执行Job时都会重新创建一个`JobDetail`...

    Quartz定时器从入门到进阶

    Quartz定时器是一个开源的作业调度框架,专为J2SE和J2EE应用程序设计,完全用Java编写。它的核心优势在于提供强大的灵活性和简单性,使得开发者可以轻松创建简单的或复杂的任务调度。Quartz支持多种特性,如数据库...

    Quartz定时器表.sql

    Quartz定时器表 执行语句 方便部署处理数据

    Quartz定时器表

    mySQL数据库Quartz定时器表,mySQL数据库Quartz定时器表,mySQL数据库Quartz定时器表,mySQL数据库Quartz定时器表

    quartz定时器api

    Quartz定时器API是Java平台上一个强大的作业调度框架,它被广泛用于构建自动化任务和后台作业,例如数据备份、报表生成、系统维护等。Quartz提供了丰富的API来创建、管理和控制作业(Jobs)和触发器(Triggers),...

    java Spring OpenSymphony的Quartz定时器的时间设置

    在Java Spring框架中,开发者有多种选择来实现定时任务的功能,其中最为流行的两种方式分别是使用Java自带的`Timer`类以及OpenSymphony的Quartz定时器。本文将重点探讨Quartz定时器的配置与使用,尤其是其时间设置的...

    Quartz定时器事例

    下面,我们将深入探讨Quartz定时器的工作原理、配置、API使用以及在实际项目中的应用案例。 1. **Quartz简介** - Quartz是一个基于JDBC存储的可扩展的作业调度框架,能够用于执行计划性的任务。 - 它支持复杂的...

    一个简单的quartz定时器的demo

    这个"一个简单的quartz定时器的demo"是展示如何在项目中集成和使用Quartz的基本步骤,包括创建任务、配置调度器以及管理任务的生命周期。 首先,Quartz的核心组件包括Scheduler(调度器)、Job(任务)和Trigger...

    quartz定时器mysql 脚本

    quartz定时器mysql的脚本,如果需要定时器持久化到数据库,可以使用

    Quartz定时器,表达式自动生成工具

    总的来说,"Quartz定时器,表达式自动生成工具"是Quartz定时器的有益补充,它降低了学习和使用Quartz的门槛,使得开发者可以更专注于业务逻辑,而不是繁琐的定时表达式设置。通过下载提供的"Quartz定时表达式自动...

    spring boot集成quartz定时器

    本文将详细讲解如何在Spring Boot项目中集成Quartz定时器,以及如何利用Spring的依赖注入特性来实现Job。 一、集成Quartz定时器 1. 添加依赖:首先,你需要在Spring Boot项目的`pom.xml`或`build.gradle`文件中...

    Spring Quartz定时器的jar包

    Spring Quartz定时器是Java开发中常用的一个任务调度框架,它结合了Spring框架的强大功能与Quartz的灵活性,使得开发者能够方便地在应用中实现定时任务。在这个压缩包中,包含了三个核心的jar文件:`quartz-all-...

    quartz定时器2.2.1JAR包

    Quartz定时器是一款开源的、功能强大的作业调度框架,它为Java应用程序提供了精确且可扩展的任务调度能力。在Java世界中,Quartz以其灵活性、稳定性和广泛的社区支持而备受推崇。2.2.1版本是Quartz的一个稳定版本,...

    Spring Quartz定时器

    Spring Quartz定时器 Spring Quartz定时器 Spring Quartz定时器 Spring Quartz定时器

Global site tag (gtag.js) - Google Analytics