`
join_lin
  • 浏览: 3994 次
  • 性别: Icon_minigender_1
  • 来自: 西安
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Quartz定时任务学习(三)属性文件和jar

阅读更多
转载  Quartz定时任务学习(三)属性文件和jar



以下是我在应用的的一个基本配置:

#---------调度器属性----------------
org.quartz.scheduler.instanceName = TestScheduler
org.quartz.scheduler.instanceId = one


#---------线程配置---------------
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 2
org.quartz.threadPool.threadPriority = 4


#---------作业存储设置------------
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore


#---------插件配置-------------
org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
org.quartz.plugin.jobInitializer.fileName = quartz_job.xml
org.quartz.plugin.jobInitializer.overWriteExistingJobs = false
org.quartz.plugin.jobInitializer.failOnFileNotFound = true

org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
org.quartz.plugin.jobInitializer.fileName = quartz_job.xml
org.quartz.plugin.jobInitializer.overWriteExistingJobs = false
org.quartz.plugin.jobInitializer.failOnFileNotFound = true

org.quartz.plugin.shutdownhook.class = org.quartz.plugins.management.ShutdownHookPlugin
org.quartz.plugin.shutdownhook.cleanShutdown = true



属性的介绍

1.调度器属性:分别设置调度器的实例名(instanceName) 和实例 ID (instanceId)。属性 org.quartz.scheduler.instanceName 可以是你喜欢的任何字符串。默认名字一般都采用QuartzScheduler,第二个属性org.quartz.scheduler.instanceId和instaneName 属性一样,instanceId 属性也允许任何字符串。这个值必须是在所有调度器实例中是唯一的,尤其是在一个集群当中。假如你想 Quartz 帮你生成这个值的话,可以设置为 AUTO。

2、线程池属性:这些线程在 Quartz 中是运行在后台担当重任的。threadCount 属性控制了多少个工作者线程被创建用来处理 Job。原则上是,要处理的 Job 越多,那么需要的工作者线程也就越多。threadCount 的数值至少为 1。Quartz 没有限定你设置工作者线程的最大值,但是在多数机器上设置该值超过100的话就会显得相当不实用了,特别是在你的 Job 执行时间较长的情况下。这项没有默认值,所以你必须为这个属性设定一个值。

threadPriority 属性设置工作者线程的优先级。优先级别高的线程比级别低的线程更优先得到执行。threadPriority 属性的最大值是常量 java.lang.Thread.MAX_PRIORITY,等于10。最小值为常量 java.lang.Thread.MIN_PRIORITY,为1。这个属性的正常值是 Thread.NORM_PRIORITY,为5。大多情况下,把它设置为5,这也是没指定该属性的默认值。

最后一个要设置的线程池属性是 org.quartz.threadPool.class。这个值是一个实现了 org.quartz.spi.ThreadPool 接口的类的全限名称。Quartz 自带的线程池实现类是 org.quartz.smpl.SimpleThreadPool,它能够满足大多数用户的需求。这个线程池实现具备简单的行为,并经很好的测试过。它在调度器的生命周期中提供固定大小的线程池。你能根据需求创建自己的线程池实现,如果你想要一个随需可伸缩的线程池时也许需要这么做。这个属性没有默认值,你必须为其指定值。

3、作业存储属性:作业存储部分的设置描述了在调度器实例的生命周期中,Job 和 Trigger 信息是如何被存储的。把调度器信息存储在内存中非常的快也易于配置。当调度器进程一旦被终止,所有的 Job 和 Trigger 的状态就丢失了。要使 Job 存储在内存中需通过设置 org.quartz.jobStrore.class 属性为 org.quartz.simpl.RAMJobStore,在Cron Trigger 和“作业存储和持久化”会用到的不同类型的作业存储实现。

4、其他插件属性:org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin默认时,JobInitializationPlugin插件会在 classpath 中搜索名为 quartz_jobs.xml 的文件并从中加载 Job 和 Trigger 信息。其他插件后叙……

quartz_jobs.xml 配置和详解

实例:简单触发器

   1.
   2. <?xml version='1.0' encoding='utf-8'?> 
   3.
   4.  
   5. <quartz> 
   6.  
   7.   <job> 
   8.     <job-detail> 
   9.      <name>ScanDirectory</name> 
  10.      <group>DEFAULT</group> 
  11.      <description> 
  12.            A job that scans a directory for files  
  13.      </description> 
  14.      <job-class> 
  15.              org.cavaness.quartzbook.chapter3.ScanDirectoryJob  
  16.      </job-class> 
  17.      <volatility>false</volatility> 
  18.      <durability>false</durability> 
  19.      <recover>false</recover> 
  20.      <job-data-map allows-transient-data="true"> 
  21.          <entry> 
  22.          <key>SCAN_DIR</key> 
  23.          <value>c:\quartz-book\input</value> 
  24.        </entry> 
  25.      </job-data-map> 
  26.     </job-detail> 
  27.  
  28.     <trigger> 
  29.      <simple> 
  30.        <name>scanTrigger</name> 
  31.        <group>DEFAULT</group> 
  32.        <job-name>ScanDirectory</job-name> 
  33.        <job-group>DEFAULT</job-group> 
  34.        <start-time>2005-06-10 6:10:00 PM</start-time> 
  35.        <!-- repeat indefinitely every 10 seconds --> 
  36.        <repeat-count>-1</repeat-count> 
  37.        <repeat-interval>10000</repeat-interval> 
  38.      </simple> 
  39.     </trigger> 
  40.  
  41.   </job> 
  42. </quartz>

我们添加了属性 org.quartz.plugin.jobInitializer.fileName 并设置该属性值为我们想要的文件名。这个文件名要对 classloader 可见,也就是说要在 classpath 下。

第三方包

通过测试。一个简单任务只需要以下几个包:commons-beanutils.jar、commons-collections.jar、commons-logging.jar、commons-digester.jar、quartz.jar即可


名称 必须/备注 网址
activation.jar 主要是 JavaMail 要用到  http://java.sun.com/products/javabeans/glasgow/jaf.html
commons-beanutils.jar 是 http://jakarta.apache.org/commons/beanutils
commons-collections.jar 是 http://jakarta.apache.org/commons/collections
commons-dbcp-1.1.jar 是,假如用到数据库作为作业存储 http://jakarta.apache.org/commons/dbcp
commons-digester.jar 是 假如你使用了某些插件,就需要它
commons-logging.jar 是 http://jakarta.apache.org/commons/logging/
commons-pool-1.1.jar   http://jakarta.apache.org/commons/pool/
javamail.jar 发送 e-mail 用 http://java.sun.com/products/javamail/
jdbc2_0-stdext.jar 是,假如用到数据库作为作业存储 http://java.sun.com/products/jdbc/
jta.jar 是,假如用到数据库作为作业存储 http://java.sun.com/products/jta/database
quartz.jar 是 Quart 框架核心包
servlet.jar 假如使用了Servlet 容器,但容器中应该存在 http://java.sun.com/products/servlet/
log4j.jar 是,日志 http://logging.apache.org/
分享到:
评论

相关推荐

    Spring Quartz定时任务 jar包

    Spring Quartz定时任务jar包是Java开发中用于实现定时任务调度的一种解决方案。Quartz是一个开源的作业调度框架,它允许程序创建、调度和执行作业,而Spring框架则为Quartz提供了良好的整合,使得在Spring应用中配置...

    Spring+Quartz定时任务学习文档+实例+jar包

    Spring和Quartz是Java开发中常用的两个框架,它们在企业级应用中被广泛用于实现定时任务的管理和执行。Spring提供了一个轻量级的容器来管理Bean,而Quartz则是一个强大的作业调度库,能够帮助开发者定义和执行定时...

    quartz定时任务Demo,直接可运行

    这个"quartz定时任务Demo"是一个可以直接在Eclipse集成开发环境中运行的实例,它提供了清晰的注释,方便初学者理解和学习。 1. **Quartz基本概念** - **Job**:作业是实际执行的任务,是实现了`org.quartz.Job`...

    quartz-all-1.6.0.jar包定时任务jar

    Quartz的核心特性是能够创建、触发和管理定时任务,这些任务可以在指定的时间点或按照预定义的频率执行。 Quartz的主要组件包括Job(任务)、Trigger(触发器)和Scheduler(调度器)。Job是实际执行的任务,可以是...

    spring定时任务quartz.jar

    在"quartz-all-1.6.0.jar"中,包含了Quartz的核心库和其他必要的组件,允许开发者在Spring应用上下文中配置和管理定时任务。 在Spring中集成Quartz,首先需要在Spring配置文件中引入Quartz的相关bean。这通常包括`...

    Quartz+spring定时任务demo

    Quartz 是一个开源的作业调度框架,用于在 Java 应用程序中实现复杂的时间调度任务。它允许开发者定义定时任务并将...通过学习这个 demo,开发者可以掌握在企业级应用中使用 Quartz 和 Spring 进行定时任务调度的方法。

    spring_quartz_定时任务

    总结,Spring和Quartz的结合为Java应用的定时任务处理提供了强大的工具,它们的集成使得任务调度更加灵活,且易于管理和维护。无论是在简单的定时任务,还是在复杂的业务场景中,都能够找到适合的解决方案。

    spring java 定时器 执行两次 quartz

    在Spring框架中,定时任务是常见的需求,例如用于执行定期数据同步、日志清理或发送邮件等。...通过理解Quartz的工作原理和Spring的定时任务API,我们可以有效地管理定时任务,确保它们按预期执行。

    Quartz所需jar包

    Quartz是一款开源的作业调度框架,它允许开发者在Java应用程序中定义和执行复杂的定时任务。在Java应用开发中,Quartz常被用来自动化各种后台任务,如数据清理、报告生成等。"Quartz所需jar包"是使用Quartz库进行...

    spring 配置quartz需要的jar包

    Spring提供了与Quartz的无缝整合,使得我们可以利用Spring的IoC(Inversion of Control)和AOP(Aspect-Oriented Programming)特性来更好地管理和执行定时任务。在配置Spring与Quartz时,有两个关键的jar包是必不可...

    11-Spring+Quartz定时任务最简集群版1

    【Spring+Quartz定时任务最简集群版1】是一个基于Spring和Quartz的定时任务解决方案,用于在分布式环境中实现任务的自动调度。本项目作为Dubbo工程的一部分,它依赖于Dubbo的一些公共组件,同时也提供了将定时任务...

    Spring+quartz定时.zip

    在IT行业中,Spring框架是Java领域最常用的轻量级应用框架之一,而Quartz则是一个强大的、开源的作业调度框架,常用于实现定时任务。本文将深入探讨如何将Spring MVC与Quartz结合,以及如何利用数据库来动态管理定时...

    使用quartz需要的jar包

    这个jar包提供了创建、管理和执行定时任务的基本功能。 2. **依赖库**: Quartz并非一个独立运行的库,它依赖于一些其他的库来完成其功能。例如,`slf4j-api.jar`用于日志记录,`commons-logging.jar`提供通用的...

    quartz-2.2.3.jar

    Quartz是Java领域的一款强大的...总的来说,"quartz-2.2.3.jar"提供了一个完整的解决方案,用于在Java环境中实现复杂的定时任务调度。通过深入理解Quartz的工作原理和API,开发者可以构建出高效且可靠的自动化工作流。

    quartz_jar

    总的来说,"quartz_jar"是Java项目中实现定时任务的重要工具,它提供了一套完整、灵活的解决方案,能够满足各种复杂的定时需求。通过熟练掌握Quartz的使用,开发者可以有效地提升应用程序的自动化水平和工作效率。

    quartz实现动态任务定时调度

    总结来说,Quartz 提供了一个强大且灵活的定时任务调度解决方案,它允许你动态地管理任务和调度。通过配置数据库持久化,你可以方便地查看和修改任务设置。虽然在特定的 cron 表达式问题上遇到了挑战,但通常 Quartz...

    spring任务调度(Quartz )

    这个库包含了Quartz所需的所有组件,使你可以方便地创建和管理定时任务。 在配置文件中,我们通常会创建一个XML文件,例如`scheduler.xml`,来定义任务调度的相关组件。在这个文件中,我们可以看到三个主要的部分:...

    quartz所需jar包

    - `quartz.xml`:这是Quartz的配置文件,可以定义调度器的属性,比如存储实现、线程池大小、作业和触发器的配置等。通过修改这个XML文件,可以定制Quartz的行为。 6. **示例代码**: - `quartz`:这个可能是包含...

    spring Quartz的jar包

    在Java环境中,Spring Quartz使得我们可以方便地管理和配置定时任务,而无需深入理解Quartz的复杂配置。 首先,我们来看一下提供的jar包: 1. `spring.jar`:这是Spring框架的核心库,包含了Spring的核心组件,如...

Global site tag (gtag.js) - Google Analytics