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

  1. #---------调度器属性----------------
  2. org.quartz.scheduler.instanceName = TestScheduler
  3. org.quartz.scheduler.instanceId = one
  4. #---------线程配置---------------
  5. org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
  6. org.quartz.threadPool.threadCount = 2
  7. org.quartz.threadPool.threadPriority = 4
  8. #---------作业存储设置------------
  9. org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
  10. #---------插件配置-------------
  11. org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
  12. org.quartz.plugin.jobInitializer.fileName = quartz_job.xml
  13. org.quartz.plugin.jobInitializer.overWriteExistingJobs = false
  14. org.quartz.plugin.jobInitializer.failOnFileNotFound = true
  15. org.quartz.plugin.shutdownhook.class = org.quartz.plugins.management.ShutdownHookPlugin
  16. 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. <?xml version='1.0' encoding='utf-8'?>
    2. <quartz>
    3. <job>
    4. <job-detail>
    5. <name>ScanDirectory</name>
    6. <group>DEFAULT</group>
    7. <description>
    8. A job that scans a directory for files
    9. </description>
    10. <job-class>
    11. org.cavaness.quartzbook.chapter3.ScanDirectoryJob
    12. </job-class>
    13. <volatility>false</volatility>
    14. <durability>false</durability>
    15. <recover>false</recover>
    16. <job-data-map allows-transient-data="true">
    17. <entry>
    18. <key>SCAN_DIR</key>
    19. <value>c:\quartz-book\input</value>
    20. </entry>
    21. </job-data-map>
    22. </job-detail>
    23. <trigger>
    24. <simple>
    25. <name>scanTrigger</name>
    26. <group>DEFAULT</group>
    27. <job-name>ScanDirectory</job-name>
    28. <job-group>DEFAULT</job-group>
    29. <start-time>2005-06-10 6:10:00 PM</start-time>
    30. <!-- repeat indefinitely every 10 seconds -->
    31. <repeat-count>-1</repeat-count>
    32. <repeat-interval>10000</repeat-interval>
    33. </simple>
    34. </trigger>
    35. </job>
    36. </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/

Quartz定时任务详解一的更多相关文章

  1. Quartz 入门详解

    Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或为运行十个,百个, ...

  2. Quartz学习——SSMM(Spring+SpringMVC+Mybatis+Mysql)和Quartz集成详解(四)

    当任何时候觉你得难受了,其实你的大脑是在进化,当任何时候你觉得轻松,其实都在使用以前的坏习惯. 通过前面的学习,你可能大致了解了Quartz,本篇博文为你打开学习SSMM+Quartz的旅程!欢迎上车 ...

  3. Quartz学习——SSMM(Spring+SpringMVC+Mybatis+Mysql)和Quartz集成详解(转)

    通过前面的学习,你可能大致了解了Quartz,本篇博文为你打开学习SSMM+Quartz的旅程!欢迎上车,开始美好的旅程! 本篇是在SSM框架基础上进行的. 参考文章: 1.Quartz学习——Qua ...

  4. (转) Quartz学习——SSMM(Spring+SpringMVC+Mybatis+Mysql)和Quartz集成详解(四)

    http://blog.csdn.net/u010648555/article/details/60767633 当任何时候觉你得难受了,其实你的大脑是在进化,当任何时候你觉得轻松,其实都在使用以前的 ...

  5. Quartz 入门详解 专题

    Cron-Expressions are used to configure instances of CronTrigger. Cron-Expressions are strings that a ...

  6. quartz配置文件详解

    quartz配置文件详解(转载)     quartz学习总结: 一.关于job:    用Quartz的行话讲,作业是一个执行任务的简单Java类.任务可以是任何Java代码.只需你实现org.qu ...

  7. CentOS Linux使用crontab运行定时任务详解

    参考博文: (总结)CentOS Linux使用crontab运行定时任务详解

  8. laravel5.5的任务调度(定时任务)详解(demo)

    https://blog.csdn.net/LJFPHP/article/details/80417552 laravel5.5的定时任务详解(demo) 这篇文章写得挺详细的.看了它我基本就会用了 ...

  9. 任务调度Cron表达式及Quartz代码详解

    在线Cron表达式生成器 http://cron.qqe2.com/ cron表达式详解 http://www.cnblogs.com/linjiqin/archive/2013/07/08/3178 ...

随机推荐

  1. 配置JAVA 环境变量

    首先 下载好JDK后 打开环境变量配置 配置JAVA_HOME: C:\Program Files\Java\jdk1.8.0_144(也就是jdk下载后的文件夹)   之后配置PATH:这时用到%J ...

  2. FileInputStream类与FileOutputStream类

    FileInputStream类是InputStream类的子类.他实现了文件的读取,是文件字节输入流.该类适用于比较简单的文件读取,其所有方法都是从InputStream类继承并重写的.创建文件字节 ...

  3. FZU 2273 Triangles 第八届福建省赛 (三角形面积交 有重边算相交)

    Problem Description This is a simple problem. Given two triangles A and B, you should determine they ...

  4. SQL注入之Sqli-labs系列第二十六关(过滤空格、注释符、逻辑运算符注入)和第二十六A

    开始挑战第二十六关(Trick with comments and space) 0x1看看源代码 (1)过滤了#  or and  /**/  /  \ ,通过判断也过滤了空格 (2)这样一来只能看 ...

  5. XDCTF2015_re100

    去年做的一道 CTF,清理文档 0x01 The .init and .fini Sections 参考下面链接:http://www.ru.j-npcs.org/usoft/WWW/www_debi ...

  6. Vue.js学习使用心得(二)——自定义指令

    自定义指令 除了核心功能默认内置的指令,Vue 也允许注册自定义指令. 自定义指令可以定义全局指令,也可以定义局部指令. 使用 directives 选项来自定义指令. 定义全局指令: <div ...

  7. sed 等相关的复习

    sed相打印两行之间的内容: sed -n '/111/,/aad/p' fuxi.txt grep -n ".*" fuxi.txt sed -n '2,9'p fuxi.txt ...

  8. win10 ubuntu 同一硬盘双系统安装和启动设置

    1.了解启动的顺序 电脑开机--->  BIOS 设置 ----> 硬盘(MBR)/ GPT格式里的ESP分区 --->  (UEFI/GRUB)目录里的 *****.efi  -- ...

  9. visual studio + opencv + contrib

    经过一天的奋战,终把opencv给用起来了.我是用的工具是vs2017+opencv3.3 上午想用mingw+opencv,结果查了很多资料说gcc不支持opencv.我感觉很奇怪,支不支持以后再说 ...

  10. hdu 1556 A - Color the ball 其他做法

    #include<bits/stdc++.h> using namespace std; ; int c[maxn]; int n; int main() { ) { cin>> ...