Quartz2.2.x官方文档2.2.X—第三章 10.配置,资源使用和SchedulerFactory
Quartz 教程
Table of Contents | ‹ Lesson 9 | Lesson 11 ›
Lesson 10: 配置, 资源使用和SchedulerFactory
Quartz架构是模块化的,因此要运行需要几个组件组合起来。幸运的是,有一些帮手存在。
在Quartz能够工作之前有些重要的组件需要配置:
- ThreadPool
- JobStore
- DataSources (如果必要的话)
- The Scheduler itself
ThreadPool 提供一组当执行任务时Quartz使用的线程。池中线程越多,就能够同时执行越多的任务。然后,太多的线程会导致你的系统崩溃。大多数Quartz用户发现5个左右线程是足够的 -因为他们在任何时候都会有小于100任务,这些任务通常不会同时运行,而且这些任务通常是短暂的(完成快速的). 有些用户发现他们需要10,15,50,设置100个线程 - 因为他们有成千上万的各种各样的触发器 - 在任何时间都有平均10-100个任务要执行。你的调度程序池使用正确的数量完全取决于你的调度任务是怎么样。没有真正的规则, 除了保持线程数尽可能小之外(为了你机器资源考虑) - 但是确保你有足够的时间让你的任务触发。主要如果一个触发器的触发时间到了,但是没有一个可获得的线程,Quartz将会阻塞(暂停)知道线程可获取,接着任务将会执行 -比它应有段时间后几毫秒。这可能导致线程错误 - 如果在调度程序配置的"错误阀值"时间内没有可用线程。
线程池接在org.quartz.spi包内定义,你可以以任何你喜欢的方式是实现线程池。Quartz附带一个简单(但是非常有用)线程池名为org.quartz.simpl.SimpleThreadPool. 这个线程池只是会维护一组固定的线程池 - 永远不会减少,永远不会增加。但是它非常强东并且经受的主考验 - 几乎每个使用Quartz的人都使用这个池。
JobStores 和 DataSources 在教程课程9进行了讨论。这是值得注意,所有JobStores都需要是实现 org.quartz.spi.JobStore 接口 - and 如果一个捆绑的JobStores不是你需要的, 然后你可以自己做。
最后, 你需要创建一个 Scheduler 实例. 调度程序本身需要一个名字, 告诉它RMI设置,并且提供一个JobStore和ThreadPol。RMI设置包括是否应该将调度程序创建自身为RMI服务对象 (使其可用于获取远程连接), 要使用的host和端口, 例如.. StdSchedulerFactory (在下面讨论) 也可以创产生调度程序实例的实际代理通过远程去创建调度程序。
StdSchedulerFactory
StdSchedulerFactory是一个org.quartz.SchedulerFactory接口的是吸纳。它使用一系列属性 (java.util.Properties)去创建和初始化一个Quartz调度程序。这些属性通常存储在文件中并从文件中加载,但是也可以由你的应用直接创建。简单的在工厂调用getScheduler()方法生成调度程序,并初始化(包括它的线程池,JobStore和数据库资源), 返回一个公共接口的引用。
在Qaurtz发行版目录"docs/config"中有一些样例配置(包含对属性的描述)。你可以在Quartz文档的参考部分找到完整文档。
DirectSchedulerFactory
DirectSchedulerFactory是另一个SchedulerFactory的实现。对于希望以更程序化的方式创建调度程序的实例的这很有帮助。由于以下原因通常不要使用它:(1) 它要求用户对它所做的事情有深入的了解 (2) 它不允许声明式配置 - 或者换句话说, 你最终会硬编码所有调度程序设置。
Logging
Quartz使用SLF4J框架满足它的日志需要。为了调整日志设置 (比如产出数量, 输出的位置), 你不需要理解 SLF4J 框架, 这超出了本文的范畴。
如果你想要获得关于触发器和任务执行的额外信息,你可以启用org.quartz.plugins.history.LoggingJobHistoryPlugin 或 org.quartz.plugins.history.LoggingTriggerHistoryPlugin.
Quartz2.2.x官方文档2.2.X—第三章 10.配置,资源使用和SchedulerFactory相关推荐
- Android HIDL 官方文档(七,END)—— 网络堆栈配置工具(Network Stack Configuration Tools)
网络工具封装 网络工具封装过滤器 1 供应商接口与链 2 允许使用的命令 21 ip 22 iptables ip6tables 23 ndc 24 tc 对应的官方文档地址:HIDL(General ...
- oracle goldengate实战指南,Oracle GoldenGate 11g官方文档Administrator’s Guide续三
CHAPTER 3 第三章 Configuring Manager and Network Communications 配置manager和网络通信 本章包含以下说明: ●配置manager进程 ● ...
- Python官方文档学习心得(第三篇)
1.定义方法 关键字 def 是方法定义的标志.接下来紧跟方法名和被圆括号所包围的参数列表.方法的主 体语句将在下一行开始并且必须缩进. 方法主体的首句可选择性地是一句字符,用来说明方法的主要功能 例 ...
- Odoo15官方文档 开发 核心教程 第4章:模型和基本字段
文章目录 对象关系映射(ORM) 模型字段 类型 常见属性 自动字段 在上一章的末尾,我们创建了一个Odoo模块.然而,在这一点上,它仍然是一个空壳,不允许我们存储任何数据.在我们的房地产模块中,我们 ...
- 2DToolkit官方文档中文版打地鼠教程(一):初始设置
这是2DToolkit官方文档中 Whack a Mole 打地鼠教程的译文,为了减少文中过多重复操作的翻译,以及一些无必要的句子,这里我假设你有Unity的基础知识(例如了解如何新建Sprite等) ...
- OpenCV-Python官方文档学习笔记(上)
整理自OpenCV-Python官方文档 一. OpenCV-Python Tutorials 1 安装及验证 2 图片读写,展示 3 视频读写,展示 4 绘图功能(绘制几何形状:线.圆.椭圆.矩形. ...
- Ant Design 入门-参照官方文档使用组件
微信小程序开发交流qq群 173683895 承接微信小程序开发.扫码加微信. 先来一个按钮组件使用的对比,官方文档的(不能直接用)和实际能用的. 官网demo: import { Tabl ...
- 坑爹的微软官方文档:SQL无人值守安装
我在部署项目的时候,需要用批处理无人值守安装SQLserver,.Net等组件. 于是查了微软官方文档,其中一项内容如下: http://msdn.microsoft.com/zh-cn/librar ...
- Tomcat官方文档关于数据源配置的内容
虽然有网上有网友自己总结的文章,但说明得总是不够清晰,还是参考官方文档理解得比较透彻: http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html h ...
最新文章
- linux下载哪个python版本-修改linux下python的默认版本
- C#[抽象类,接口]
- 【Tools】Linux下C和C++程序中内存泄露检测
- Windows7优化开机、关机速度的方法
- python类的成员函数_Python为类对象动态添加成员函数
- labview周立功can通讯程序.rar_使用Labview进行CAN 通讯之dbc解析
- html元素两种分类。替换元素和不可替换元素;块级元素和行内元素
- springcloud基于ribbon的canary路由方案 1
- Java 技术是什么?
- The “QtRunWork“ task returned false but did not log an error
- 万能五笔输入法弹窗_万能五笔输入法
- sql注入工具的使用
- 破网与立网,数字螺旋下的适者生存
- 谐波叠加法matlab,谐波叠加法 可运行程序,分享不谢
- Docker基本命令
- 【web安全】——文件包含漏洞
- 页面置换算法(FIFO、第二次机会、LRU)
- 华为设备DNS配置命令
- 北欧计算机专业出国,留学北欧,哪个国家计算机专业比较好?
- amazon mechanical turk介绍