Quartz.NET - 教程 10: 配置, 资源使用和调度器工厂

译者注:
目录在这 Quartz.NET 3.x 教程
原文在这 Lesson 10: Configuration, Resource Usage and SchedulerFactory

Quartz 是以模块化的方式构建的, 因此要使其运行, 需要将几个组建 "拼凑" 在一起. 幸运的是, 有一些小伙伴可以帮我做到这一点.

Quartz 正常工作前需要配置的主要组件有:

  • ThreadPool - 线程池
  • JobStore - 作业查询
  • DataSources (如有必要) - 数据源
  • The Scheduler itself - 调度程序本身

自从引入基于 Task 的作业以来线程池发生了很大的变化. 文档待补充

在本教程的 课程 9 中讨论了 JobStore 和 DataSources. 值得注意的是, 实际上所有的 JobStores 都实现了 IJobStore 接口 - 如果捆绑的 JobStores 没有您需要的, 您可以自己实现.

最后, 您需要创建您的调度程度实例. 调度程序本身需要被赋予 JobStore 和 ThreadPool 的名称和实例.

StdSchedulerFactory

StdSchedulerFactory 是 ISchedulerFactory 接口的一个实现. 她使用了一组属性 (NameValueCollection) 来创建和初始化 Quartz 调度程序. 这些属性通常存储在文件中并从文件中加载, 但是也可以由您的程序创建并直接传递到工厂. 只需在调用工厂中的 getScheduler() 方法即可生成调度程度, 初始化其(以及其 ThreadPool, JobStore 和 DataSources), 并返回其公共接口的句柄.

这里有一些配置示例 (包括属性描述) 在 Quartz 发布的 "docs/config" 目录下. 您可以在 Quartz 文档的 "Reference" 部分的 "Configuration" 下找到完整的文档.

DirectSchedulerFactory

DirectSchedulerFactory 是另一个 SchedulerFactory 实现. 对于那些希望以更具编程性的方式创建调度程序的的人来说是很有用的. 但通常不鼓励这样使用原因如下: (1) 这要求用户对他们正在做的事有更深入的理解, 以及 (2) 这不允许声明式配置 - 也就是说, 您最终需要硬编码调度程序的所有设置.

Logging

Quartz.NET 使用 LibLob 库来满足其所有的日志需要. Quartz 不会产生许多日志信息 - 通常只有一些初始化期间的信息, 以及在作业执行期间有关严重问题的信息. 为了 "调优" 日志设置 (例如日志量, 以及输出位置), 您需要实际配置您选择的日志框架因为 LibLog 主要将工作委托给更成熟的日志框架如 log4net, serilog 等.

查看更多信息请参阅 LibLog.

posted @ 2019-04-04 15:08  taadis  阅读(644)  评论(0编辑  收藏  举报