`

怎样用quartz 调度Job

阅读更多

怎样用quartz 调度Job

 

1.所需要的第三方包:


quartz-1.5.2.jar
commons-beanutils.jar
commons-digester-1.7.jar
commons-logging.jar
commons-logging-api.jar
log4j-1.2.11.jar
 
2.定义自己的job:

 

public class ScanJob implements Job {
 
    public  void SanJob(){}
    public void execute(JobExecutionContext arg0) throws JobExecutionException {
        Logger logger = null;
        logger = Logger.getLogger(this.getClass());                
        logger.info("test job is running");
        System.out.println("======================");
        System.out.println("this is my 11111111111111111 job");
        System.out.println("this is my 22222222222222222 job");
        Date abc=new Date();
        System.out.println("-------------"+ abc.getSeconds());
    }
}

  

 
3.在 web.xml加入:
<servlet>
   <servlet-name>QuartzInitializer</servlet-name>
   <servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class>
   <init-param>
     <param-name>shutdown-on-unload</param-name>
     <param-value>true</param-value>
   </init-param>
   <init-param>
    <param-name>config-file</param-name>
    <param-value>quartz.properties</param-value>
   </init-param>
   <load-on-startup>2</load-on-startup>
 </servlet>
 

4.在classes的目录下建立quartz.properties
 #============================================================================
# Configure Main Scheduler Properties 
#============================================================================
org.quartz.scheduler.instanceName = QuartzScheduler
#============================================================================
# Configure ThreadPool 
#============================================================================
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 1000
#org.quartz.threadPool.threadPriority = 5
#============================================================================
# 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.fileName = quartz_jobs.xml
#org.quartz.plugin.jobInitializer.overWriteExistingJobs = true
#org.quartz.plugin.jobInitializer.failOnFileNotFound = true

 
5.在classes的目录下建立quartz_jobs.xml
<?xml version='1.0' encoding='utf-8'?>
<quartz>
 <job>
   <job-detail>
    <name>test</name>
    <group>DEFAULT</group>
    <description>testJobhere</description>
    <job-class>www.ngc.com.ScanJob</job-class>
   </job-detail>
   <trigger>
             <cron>
                  <name>testTrigger</name>
                  <group>DEFAULT</group>
                  <job-name>test</job-name>
                 <job-group>DEFALUT</job-group>
                 <cron-expression>0/5 * * * * ?</cron-expression>
             </cron>
       </trigger>
  </job>
</quartz>
 

6.用main方法测试:

 

public class QuartzMain {
    public static void main(String[] args) {
        QuartzMain server = new QuartzMain();
        try {
            server.startScheduler();
        } catch (SchedulerException e) {
            e.printStackTrace();
        }
    }
    protected void startScheduler() throws SchedulerException {
        Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
        JobDetail jobDetail =
 new JobDetail("testJob", Scheduler.DEFAULT_GROUP, ScanJob.class);
      //结束时间     
        long end = System.currentTimeMillis() + 9000L;
        //执行10次,每3秒执行一次,到9秒后结束
        SimpleTrigger trigger = new SimpleTrigger("test",null,new Date(),new Date(end),10,3000L);
        scheduler.scheduleJob(jobDetail, trigger);
        scheduler.start();
    }
}

  
 
7.在应用服务器中发布,就可以在console看到日志.
======================
this is my 11111111111111111 job
this is my 22222222222222222 job
-------------35

分享到:
评论

相关推荐

    quartz调度系统工具.zip

    这个"quartz调度系统工具.zip"文件很可能包含了用于简化Quartz配置和管理的实用工具。 Quartz的核心概念包括: 1. **作业(Jobs)**:是实际执行的工作单元,开发者需要自定义Job类来实现特定的任务逻辑。 2. **...

    Quartz调度、终止执行的任务

    Quartz的核心概念包括Job(任务)、Trigger(触发器)和Scheduler(调度器)。Job是实际要执行的工作,Trigger定义了Job的执行时间,而Scheduler则是协调这些元素并确保它们按照预定规则运行的组件。 在Quartz中...

    quartz3种调度形式+传参.zip

    1. 单纯的Quartz调度 在不依赖任何框架的情况下,直接使用Quartz API进行任务调度。首先,你需要创建一个Job类,实现`org.quartz.Job`接口,并重写`execute(JobExecutionContext context)`方法。然后,定义Trigger...

    quartz定时调度完整实例

    Quartz是一款开源的作业调度框架,它为Java应用程序提供了强大的定时任务管理能力。在这个"quartz定时调度完整实例"中,我们将深入理解Quartz的工作原理和如何在项目中实际应用。 1. **Quartz简介** - Quartz是...

    quartz 时间调度器的使用

    Quartz 的源码提供了丰富的注释,你可以查看 `org.quartz.impl.StdSchedulerFactory`、`org.quartz.Scheduler`、`org.quartz.Trigger` 和 `org.quartz.Job` 等关键类,了解它们如何协同工作来实现任务调度。...

    用 quartz 调度定时工作

    ### 使用 Quartz 进行定时任务调度 #### 一、Quartz 概述 Quartz 是 OpenSymphony 项目中的一个子项目,它提供了一套强大的调度功能,可以在 J2EE 环境下或者独立环境中运行。Quartz 的设计目标是成为一个全能型的...

    Spring Quartz 调度器

    下面我们将详细讲解如何在Spring中配置和使用Quartz调度器。 首先,我们需要在项目中引入Quartz和Spring的相关依赖。在pom.xml文件中添加对应的Maven坐标,确保能正确导入Quartz和Spring的库。 接下来,我们需要...

    Quartz.net作业调度自定义定时执行任务多任务执行c#

    在"Quartz.net作业调度自定义定时执行任务多任务执行c#"这个主题中,我们将深入探讨如何使用Quartz.NET来实现自定义的定时任务,以及如何处理多任务执行。 首先,我们需要理解Quartz.NET的基本概念。在Quartz.NET中...

    Quartz(作业调度)

    通过合理的配置和设计,我们可以用Quartz实现复杂且可靠的定时任务调度,提升系统的自动化程度和效率。在实际项目中,要充分利用Quartz提供的各种工具和接口,确保任务的稳定运行,同时也要注意性能优化和资源管理。

    Spring中Quartz调度器的使用

    Spring 中 Quartz 调度器的使用 Spring 中 Quartz 调度器的使用是指在 Spring 框架中使用 Quartz 调度器来实现任务调度。Quartz 是一个功能强大且灵活的开源任务调度器,能够满足复杂的任务调度需求。在 Spring 中...

    Quartz任务调度器

    Quartz任务调度器是一款强大的开源任务调度框架,广泛应用于Java应用程序中,用于自动化定时任务的执行。它提供了灵活的任务调度机制,使得开发者可以方便地定义、安排和执行各种任务。在与Spring框架整合后,Quartz...

    quartz-job初始化数据表.zip

    Job(作业)是Quartz的核心概念,它代表一个需要被调度的任务。在Quartz中,我们通常需要配置一个数据库来存储作业、触发器以及相关的状态信息。"quartz-job初始化数据表.zip" 文件显然包含了用于设置Quartz作业调度...

    quartz调度引擎表

    Quartz调度引擎是一款开源的Java定时任务框架,广泛应用于企业级应用系统中,用于执行定时任务,例如数据备份、报表生成、系统维护等。它的核心功能是根据预定义的规则和时间表,自动触发和执行作业(Job)。 1. **...

    Quartz Job Scheduling Framework 中文版

    而调度Job和Trigger则可以使用Scheduler的`scheduleJob()`方法。 5. **持久化**: Quartz支持将Job和Trigger的信息持久化到数据库或其他存储,这样即使应用重启,之前安排的作业也会自动恢复。这使得Quartz能够在...

    quartz 定时任务调度

    总的来说,Quartz 提供了一个强大的定时任务调度平台,结合 Spring 使用,可以简化开发过程,使开发者专注于业务逻辑,而不需要关心底层的调度实现。通过配置和编程接口,我们可以灵活地定义和管理各种定时任务,...

    quartz任务调度使用手册

    5. **调度Job**: - 使用Scheduler实例的`scheduleJob()`方法将Job和Trigger关联起来,定义任务执行计划。 - 可以使用`start()`方法启动Scheduler,开始执行任务。 6. **管理和控制任务**: - 调用`pauseJob()`...

    Quartz Job实现java任务调度

    Quartz是功能强大的开源作业调度库,几乎可以集成到任何Java应用程序中-从最小的独立应用程序到最大的电子商务系统。Quartz可用于创建简单或复杂的计划,以执行数以万计,数以万计的工作;任务定义为标准Java组件的...

    quartz动态定时调度完整代码

    Quartz可以使用数据库存储Job和Trigger的状态,以便在服务器重启后仍能恢复之前的调度信息。 5. `介绍.txt`: 这个文本文件可能包含了关于如何运行示例代码、Quartz的基本用法或者项目背景的说明。打开文件查看详细...

    任务调度Quartz框 架

    默认情况下,Quartz使用内存存储,但为了保证任务调度的高可用性和持久性,通常会配置使用数据库来保存调度信息。这样,即使应用程序重启,之前调度的Job和Trigger也会被重新加载。 ### 结语 Quartz作为一个功能...

Global site tag (gtag.js) - Google Analytics