目录

StdSchedulerFactory

DirectSchedulerFactory

Logging :日志


Quartz的架构是模块化的,因此为了让它运行,需要将几个组件“拼接”在一起。幸运的是,有一些助手可以实现这一目标。

在Quartz可以完成其工作之前需要配置的主要组件是:

  • ThreadPool   线程池
  • JobStore      Job存储
  • DataSources (if necessary)   如果有必要
  • The Scheduler itself     调度器本身

ThreadPool提供了一组线程供Quartz在执行作业时使用。池中的线程越多,可以并发运行的作业就越多。但是,太多的线程可能会阻塞您的系统。大多数Quartz用户发现,5个左右的线程是足够的——因为它们在任何给定的时间内都少于100个作业,作业通常不会同时运行,而且作业是短暂的(快速完成)。其他用户发现他们需要10个、15个、50个甚至100个线程——因为他们有成千上万个具有不同时间表的触发器——这些触发器在任何给定的时刻平均要执行10到100个作业。为调度器的池找到合适的大小完全取决于您使用调度器的用途。除了尽可能地减少线程的数量(为了您的机器的资源)之外,没有真正的规则——但是请确保您有足够的线程供您的作业准时启动。注意,如果触发的时间到了,并且没有可用的线程,Quartz会阻塞(暂停)直到一个线程可用,然后任务会执行——比它应该执行的时间晚了一些毫秒。这甚至可能导致线程失火——如果在调度程序配置的“未触发阈值”期间没有可用线程的话。

ThreadPool接口在org.quartz.spi包中定义,您可以以任何您喜欢的方式创建ThreadPool实现。Quartz附带了一个名为org.quartz.simpl.SimpleThreadPool的简单(但非常令人满意)的线程池。这个ThreadPool只是在它的池中维护一组固定的线程 - 永不增长,永不收缩。但它非常强大并且经过了很好的测试 - 几乎所有使用Quartz的人都使用这个池

JobStores DataSources在本教程的第9课中进行了讨论。值得注意的是,所有JobStores都实现了org.quartz.spi.JobStore接口 - 如果其中一个捆绑的JobStore不能满足您的需求,那么您可以创建自己的。

最后,您需要创建Scheduler实例。需要为Scheduler本身指定一个名称,告知其RMI设置,并传递JobStore和ThreadPool的实例。RMI设置包括调度程序是否应将自身创建为RMI的服务器对象(使其自身可用于远程连接),要使用的主机和端口等等.stdrequerfactory(下面讨论)还可以生成调度程序实例,它们实际上是在远程进程中创建的调度程序的代理(RMI存根)。

StdSchedulerFactory

StdSchedulerFactory是org.quartz.SchedulerFactory接口的实现。它使用一组属性(java.util.Properties)来创建和初始化Quartz Scheduler。这些属性通常存储在文件中并从文件中加载,但也可以由程序创建并直接传递给工厂。只需在工厂调用getScheduler()就可以生成调度程序,初始化它(及其ThreadPool,JobStore和DataSources),并返回其公共接口的句柄。

Quartz发行版的“docs / config”目录中有一些简单的示例配置(包括属性的描述)。您可以在Quartz文档的“参考”部分下的“配置”手册中找到完整的文档。

DirectSchedulerFactory

DirectSchedulerFactory是另一个SchedulerFactory实现。对于那些希望以更加编程的方式创建Scheduler实例的人来说,它非常有用。由于以下原因,通常不鼓励使用它:(1)它要求用户更好地理解他们正在做什么,(2)它不允许声明式配置——换句话说,您最终会硬编码所有调度器的设置。

Logging :日志

Quartz使用SLF4J框架满足其所有日志记录需求。为了“调整”日志记录设置(例如输出量以及输出的位置),您需要了解SLF4J框架,这超出了本文档的范围。

如果您希望获取有关trigger firings 和job executions 额外的信息,你可能有兴趣 对  org.quartz.plugins.history.LoggingJobHistoryPlugin和/或 org.quartz.plugins.history.LoggingTriggerHistoryPlugin。

Lesson 10: Configuration, Resource Usage and SchedulerFactory相关推荐

  1. Quartz_2.2.X学习系列十:Tutorials - Lesson 10: Configuration, Resource Usage and SchedulerFactory

    第10课小结: 在Quartz完成其工作之前需要配置的主要组件是: • ThreadPool • JobStore • DataSources (if necessary) • The Schedul ...

  2. [译]Java定时任务调度-Quartz文档(十)Configuration, Resource Usage and SchedulerFactory

    Quartz的设计是模块化的,所以要让它跑起来,得将各个模块组合起来使用.幸运的是,有些工具可以来帮我们做这些事. Quartz的主要模块有: ThreadPool,线程池 JobStore,任务仓库 ...

  3. CVE-2019-11478 Sack SlownessExcess Resource Usage漏洞解析与利用

    忘掉那些忧伤,不用再掩饰慌张!说好的暴雨,最终还是没有落下- 在CVE-2019-11477 Sack Panic曝出之后,相信很多大型互联网公司都感受到了一阵凉意,加班那是难免的,当然了,我也没闲着 ...

  4. 系统管理Lesson 10. Managing Data Concurrency

    系统管理Lesson 10. Managing Data Concurrency 1. 请对 Oracle 数据库锁机制做一个完整的说明. 10-4 2. 事务在获取排他的行锁的同时,为什么要同时获取 ...

  5. 备份恢复Lesson 10. Restore and Recovery Concepts

    备份恢复Lesson 10. Restore and Recovery Concepts 1. 请解释 RESTORE 和 RECOVER 这两个 RMAN 命令的具体使用? 10-6 10-7 2. ...

  6. 新概念英语(第四册,新版)学习(原文及全文翻译)——Lesson 10 - Silicon Valley(硅谷)

    注:这里只列出旧版中未包含的文章. Lesson 10(New Version) - Silicon Valley Technology trends may push Silicon Valley ...

  7. LESSON 10.110.210.3 SSE与二分类交叉熵损失函数二分类交叉熵损失函数的pytorch实现多分类交叉熵损失函数

    在之前的课程中,我们已经完成了从0建立深层神经网络,并完成正向传播的全过程.本节课开始,我们将以分类深层神经网络为例,为大家展示神经网络的学习和训练过程.在介绍PyTorch的基本工具AutoGrad ...

  8. Java学习lesson 10

    API(应用程序编程接口) *  public final Class getClass();//返回Object的运行类(java的反射机制学) *  Class类中有一个类 *public Str ...

  9. LESSON 10.410.510.6 贝叶斯优化的基本流程BayesOpt vs HyperOpt vs Optuna batch基于BayesOpt实现高斯过程gp优化

    超参数优化 - 贝叶斯优化方法 import numpy as np import pandas as pd import sklearn import matplotlib as mlp impor ...

最新文章

  1. mysql set 子表,mysql update set 更新表数据
  2. php xml expat,PHP Expat :XML的解析器
  3. 【python 3.6】python读取json数据存入MySQL(一)
  4. C# Console.ReadLine()方法的使用 以及利用其返回值null终止输入
  5. [respberry pi3][suse] 配置docker
  6. 机器学习降维-深度AI科普团队
  7. ASP.NET的IIS映射
  8. mysql clomn_mysql 命令总结
  9. [转载]SELinux安全系统基础
  10. 3D模型格式全解|含RVT、3DS、DWG、FBX、IFC、OSGB、OBJ等70余种
  11. 睿智的目标检测37——TF2搭建SSD目标检测平台(tensorflow2)
  12. 国家级赛事正式开赛 | 2019数字中国创新大赛上线
  13. json_encode函数参数详解
  14. 移动H60G改为桥接
  15. Microsoft Word 论文编排技巧
  16. 最新小月云匿名短信系统源码V2.0+全新UI的
  17. 如何设置自定义任务栏图标_如何为任何应用程序自定义Windows 7任务栏图标
  18. ESP32S3系列--SPI主机驱动详解(一)
  19. 第五模块:WEB开发基础-第8章 Jquery开发BootStrap
  20. windows如何安装WSL

热门文章

  1. 戴尔Alienware Command Center重装方法
  2. 搜索引擎优化SEO工具集合[转]
  3. 【JavaLearn】(19)反射、Class类、使用反射创建对象-操作属性-执行方法、泛型与反射、反射案例
  4. ubuntu下更新python
  5. Profanity 0.3.1 发布,XMPP 客户端
  6. 【python之pyautogui桌面自动化】
  7. 【STC8A8K64S4A12开发板】—小白做GPIO按键实验
  8. 获取本工程的真实路径
  9. windows的telnet无效,处理方法
  10. 河内塔问题解决方案1(Common Lisp实现)