`
jsjxqjy
  • 浏览: 118340 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

任务调度 Quartz 尽量做到可配置?

阅读更多

下面想总结下项目中完全只使用 任务调度Quartz来 组织定时任务 :

 

1.首先我们需要Quartz的jar包 ,见附件

2.我们来创建一个 ServletContextListener  实现这个接口的一个监听器,主要用来启动任务调度

 

public class SchedulerListener implements ServletContextListener {

 public void contextInitialized (ServletContextEvent sce) {

   //TODO : something

}

public void contextDestroyed (ServletContextEvent sce) {

 //TODO : something

}

 

  在web.xml配置这个监听器

 

<context-param>
         <param-name>scheduler-config-file</param-name>
         <param-value>/config/quartz.properties</param-value>
     </context-param>
<listener>
         <listener-class>
             com.test.quartz.SchedulerListener
         </listener-class>
     </listener>

 

3. 属性文件的编写  quartz.properties

# Default Properties file for use by StdSchedulerFactory
# to create a Quartz Scheduler Instance, if a different
# properties file is not explicitly specified.
#
org.quartz.scheduler.instanceName = DefaultQuartzScheduler

org.quartz.scheduler.rmi.export = false

org.quartz.scheduler.rmi.proxy = false

org.quartz.scheduler.wrapJobExecutionInUserTransaction = false

org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool

org.quartz.threadPool.threadCount = 10

org.quartz.threadPool.threadPriority = 5

org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true

org.quartz.jobStore.misfireThreshold = 60000

org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore

#============================================================================
# Configure Plugins 
#============================================================================

org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
org.quartz.plugin.jobInitializer.fileNames = /config/quartz-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

 

由于具体的东西了解不是很深,所有没有注释这些配置是做什么的 ,以后补充 

 可以参考下面的超链 好像讲了很多 quartz.properties配置说明  http://kdisk-sina-com.iteye.com/blog/436109 

 

4.quartz-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>myJob</name>
      <group>myJobs</group>
      <job-class>com.test.quartz.MyJob</job-class>
    </job-detail>
    <trigger>
      <cron>
        <name>myTrigger</name>
        <group>testTriggers</group>
        <job-name>myJob</job-name>
        <job-group>test</job-group>
        <cron-expression>0 0 2 * * ?</cron-expression>
        <!-- Fire at 02:00 am every day -->
      </cron>
    </trigger>
  </job>

</quartz>

 
配置说明 : 其中 com.test.quartz.MyJob 类是我们需要自己实现自己需要的东西

 

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class MyJob implements Job {

     public void execute (JobExecutionContext jobCtx) throws JobExecutionException {
        
     //TODO :something  
   }
}

 

这里,我们可以把多个相同性质的任务 都放在execute方法里面 . 例如 有多个不同的任务都是要在 下午3点定时执行的

话,我们就都把他放在这里执行,

 

 

在上面的 quartz-jobs.xml  的配置中 ,我们可以配置多个 job节点 ,完成我们对不同任务的调度时间的不同需求

 

这样就达到可以配置的目的了

 

 

 

 

    

分享到:
评论

相关推荐

    任务调度Quartz框 架

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

    Spring整合任务调度框架Quartz

    Spring 整合任务调度框架 Quartz ...Spring 整合任务调度框架 Quartz,可以使用配置文件方式或 Quartz 持久化方式来实现任务调度。开发者可以根据实际情况选择合适的方式,从而提高软件系统的自动化和可靠性。

    spring任务调度(Quartz )

    Spring中的任务调度是实现应用程序自动化运行任务的重要工具,而Quartz是Java领域广泛使用的开源任务调度框架。在本文中,我们将深入探讨如何在Spring中集成Quartz进行任务调度,并通过一个简单的示例来理解其工作...

    Quartz + spring简单配置多个任务调度

    Quartz + spring简单配置多个任务调度 spring配置文件 简单配置

    任务调度 quartz

    【任务调度 Quartz】是Java平台上广泛使用的开源任务调度框架,它允许开发者定义和执行周期性的任务。Quartz的核心功能在于其强大的作业(Job)和触发器(Trigger)系统,能够帮助我们在应用程序中灵活地安排任务...

    任务调度Quartz框架

    Quartz通过其强大的功能和易用性,为开发者提供了构建高效可控的任务调度系统的解决方案。 ### Quartz简介 Quartz框架自2001年发布以来,已经在许多项目中得到广泛应用。它提供了灵活的时间表定义,使得开发者可以...

    任务调度开源框架Quartz

    Quartz是一款广泛应用于Java环境中的开源任务调度框架,它提供了高度可配置的作业调度系统,使得开发者能够轻松地在应用程序中实现定时任务的管理。Quartz的核心特性包括但不限于以下几点: 1. **灵活的调度**:...

    Quartz任务调度器

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

    quartz 定时任务调度

    `SchedulerFactoryBean` 是 Spring 提供的一个工厂 Bean,它负责创建和配置 Quartz Scheduler,并将任务和触发器添加到调度器中。`triggers` 属性的值是一个列表,包含了所有需要调度的任务触发器。 在实际应用中,...

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

    5. **动态调度**: 除了静态配置任务外,Quartz.NET还支持动态调度。例如,你可以在程序运行时根据需要添加、修改或删除Job和Trigger。 6. **持久化**: 为了保证任务的可靠性和在服务器重启后的恢复,Quartz.NET支持...

    .net Quartz 任务调度平台源码

    总结来说,.NET Quartz 任务调度平台是.NET开发中不可或缺的工具,它能够简化任务调度的复杂性,提高系统的自动化程度,同时提供了丰富的功能和强大的扩展性,适用于各种业务场景。深入研究并熟练掌握其使用,无疑会...

    Springboot2-Quartz 后台可动态配置的定时任务

    本项目“Springboot2-Quartz 后台可动态配置的定时任务”是基于SpringBoot 2.x版本与Quartz Scheduler整合的一个示例,它展示了如何在后台管理系统中动态地创建、更新和删除定时任务,以及监控这些任务的状态,为...

    任务调度框架Quartz

    Quartz 提供了高度可控的任务调度功能,能够满足大多数的调度需求。 Quartz 的主要特点包括: 1.高度灵活性:Quartz 允许开发人员灵活地定义触发器的调度时间表,可以对触发器和任务进行关联映射。 2.持久化机制:...

    Quartz.Net任务调度

    Quartz.Net是一个强大的任务调度框架,它在.NET环境中被广泛应用,尤其在需要执行定时任务的系统中。Quartz.Net的设计灵感来源于Java的Quartz库,它允许开发者灵活地定义和管理作业(Jobs)以及触发器(Triggers),...

    定时任务quartz实现分组串行并行动态配置

    Quartz是一款广泛使用的开源作业调度框架,它允许开发者在Java应用程序中定义和执行定时任务。在实际应用中,我们可能需要根据业务需求动态地配置定时任务的执行方式,例如,某些任务可能需要串行执行,而其他任务则...

    任务调度系统基于Quartz.net

    在"任务调度系统基于Quartz.net"的项目中,我们将深入探讨如何利用Quartz.NET来构建高效、可扩展的任务调度解决方案。 Quartz.NET的核心概念包括作业(Job)、触发器(Trigger)和调度器(Scheduler)。作业是实际...

    Spring+Quartz实现任务调度的小例子

    Quartz可以集成到Spring中,利用Spring的依赖注入和配置能力,使得任务调度更加简洁和易于维护。 **一、Spring与Quartz的集成** 1. **配置Quartz** 在Spring应用中集成Quartz,首先需要添加Quartz的相关依赖到...

    Java中使用Quartz实现任务自动调度的经典例子!

    Quartz是Java中一个强大的开源任务调度库,它允许开发者定义和执行短时或周期性的任务。这个经典例子展示了如何在Java项目中集成并使用Quartz进行任务自动调度。通过以下内容,我们将深入理解Quartz的基本概念、配置...

    Quartz调度、终止执行的任务

    总之,Quartz提供了一套强大的任务调度机制,通过灵活的Job和Trigger配置,我们可以创建各种定时任务。同时,它的暂停、删除功能使得我们能够在运行时动态控制任务的执行状态,以适应不同的业务需求。在实际开发中,...

    定时任务 Quartz调度(采用配置文件)

    Quartz是一款开源的作业调度框架,它允许程序创建并管理定时任务。在Java开发中,Quartz被广泛用于实现各种周期性任务的自动化执行,比如数据备份、报表生成、系统维护等。本篇将深入探讨Quartz如何通过配置文件来...

Global site tag (gtag.js) - Google Analytics