一、介绍

今天是这个系列的最后一篇文章了,主要功能说的差不多了,我们来看看其他相关的内容。话说回来,虽然是这个系列的最后一篇文章,并不代表Quartz的东西就这么点,学习阶段,就这些了,如果以后有了使用心得,再增加进来。废话少说,开始我们今天的学习吧。

二、Quartz.Net其他功能

Quartz以模块化方式构建,因此要使其运行,需要将几个组件“拼接”在一起。 幸运的是,有一些助手可以实现这一目标。

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

1)、ThreadPool

2)、JobStore

3)、数据源(如有必要)

4)、调度程序本身

自从引入基于任务的作业以来,线程池已经发生了很大变化。 TODO文档更多

JobStores 和 DataSrouces 在本教程的第9课中进行了讨论。 值得注意的是,所有 JobStores 都实现了 IJobStore 接口 - 如果其中一个捆绑的JobStore不能满足您的需求,那么您可以创建自己的。
            
            最后,您需要创建Scheduler实例。 需要为Scheduler本身指定一个名称并交给JobStore和ThreadPool的实例。

1、StdSchedulerFactory

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

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

2、DirectSchedulerFactory

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

3、Logging

Quartz.NET 使用 LibLob 库来满足其所有日志记录需求。 Quartz 不会产生很多日志信息——通常只是在初始化期间产生一些信息,然后在 Jobs 执行期间只产生关于严重问题的消息。为了“优化”日志设置(比如输出量和输出位置),您需要实际配置所选择的日志框架,因为 LibLog 主要将工作委托给更成熟的日志框架,如log4net、serilog等。

4、高级(企业)功能

集群:集群目前只适用于 AdoJobstore(JobStoreTX)。功能包括负载平衡和作业故障转移(如果JobDetail的“请求恢复”标志设置为true)。
            
                通过将“quartz.jobStore.clustered”属性设置为“true”来启用群集。 集群中的每个实例都应使用相同的quartz属性副本。 例外情况是使用相同的属性,具有以下允许的例外:不同的线程池大小,以及“quartz.scheduler.instanceId”属性的不同值。 集群中的每个节点必须具有唯一的instanceId,通过将“AUTO”作为此属性的值放置,可以轻松完成(不需要不同的属性文件)。

永远不要在不同的机器上运行群集,除非它们的时钟使用某种形式的时间同步服务(守护进程)进行同步,这些服务定期运行(时钟必须在彼此的秒内)。 如果您不熟悉如何执行此操作,请访问http://www.boulder.nist.gov/timefreq/service/its.htm。

永远不要针对运行任何其他实例的同一组表启动非群集实例。 您可能会收到严重的数据损坏,并且肯定会遇到不正常的行为。

5、Quartz.Net 其他功能

1)、Plug-Ins(插件)

Quartz提供了一个接口(ISchedulerPlugin),用于插入附加功能。

Quartz.Plugins 命名空间中可以找到 Quartz 附带的以提供各种实用功能的插件。 它们提供的功能包括在调度程序启动时自动调度作业,记录作业历史记录和触发事件,以及确保调度程序在虚拟机退出时干净地关闭。

2)、JobFactory

触发器触发时,与其关联的Job将通过Scheduler上配置的JobFactory实例化。 默认的JobFactory只是激活作业类的新实例。 您可能希望创建自己的JobFactory实现来完成诸如让应用程序的IoC或DI容器生成/初始化作业实例之类的事情。

请参阅 IJobFactory 接口和相关的 Scheduler.SetJobFactory(fact)方法。

3)、‘Factory-Shipped’ Jobs(工厂预装的一些有用的任务作业)

Quartz还提供了许多实用工具,您可以在应用程序中使用它们来执行诸如发送电子邮件和调用远程对象之类的操作。 可以在Quartz.Jobs命名空间中找到这些开箱即用的作业。
            
        三、总结

好了,今天就写到这里了。这个系列的内容先暂停吧,以后有好的内容再更新了。还是老规矩,我把英文原文地址发出来,英文好的可以直接看英文,理解的会更好。地址如下:https://www.quartz-scheduler.net/documentation/quartz-3.x/tutorial/configuration-resource-usage-and-scheduler-factory.html,这篇文章是起始文章,我今天写的这篇文章把后面的所有的内容写在了一起。

不忘初心,继续努力。

Quartz.Net进阶之七:QuartzNet其他的功能简述的更多相关文章

  1. Bing Maps进阶系列四:路由功能服务(RouteService)

    Bing Maps进阶系列四:路由功能服务(RouteService) Bing Maps提供的路由功能服务(RouteService)可以实现多方位的计算地图上的路线指示,路径行程等功能,比如说实现 ...

  2. visual studio调试功能简述

    vs调试简述 1.调试功能简述 vs提供了很强大的调试功能,能够让我们一步步执行中找到每个变量的值,便于查错改错.很多IDE都有调试功能,在使用调试功能时,记得先创建一个项目,哪怕是一个文件,也创建一 ...

  3. Hadoop YARN学习之组件功能简述(3)

    Hadoop YARN学习之组件功能简述(3) 1. YARN的三大组件功能简述: ResourceManager(RM)是集群的资源的仲裁者, 它有两部分:一个可插拔的调度器和一个Applicati ...

  4. SAP Marketing Cloud功能简述(五) : 销售计划管理

    Grace前四篇介绍SAP Marketing Cloud的文章: SAP Marketing Cloud功能简述(一) : Contacts和Profiles SAP Marketing Cloud ...

  5. SAP Marketing Cloud功能简述(四) : 线索和客户管理

    这个系列的前三篇文章Grace Dong已经给大家带来了下面的内容: SAP Marketing Cloud功能简述(一) : Contacts和Profiles SAP Marketing Clou ...

  6. SAP Marketing Cloud功能简述(三) 营销活动内容设计和产品推荐

    Grace的前两篇文章: SAP Marketing Cloud功能简述(一) : Contacts和Profiles SAP Marketing Cloud功能简述(二) : Target Grou ...

  7. SAP Marketing Cloud功能简述(二) : Target Group

    这个系列的第一篇文章 SAP Marketing Cloud功能简述(一) : Contacts和Profiles,我向大家介绍了SAP Marketing Cloud里的Contacts和Profi ...

  8. Net作业调度(三) — Quartz.Net进阶

    介绍 前面介绍Quartz.Net的基本用法,但在实际应用中,往往有更多的特性需求,比如记录job执行的执行历史,发邮件等. 阅读目录 Quartz.Net插件 TriggerListener,Job ...

  9. Quartz.Net进阶之六:详述 JobStores

    一.介绍 今天开始学习 JobStore,别的先不说,也不用翻译软件来翻译,直接从字面意思看来理解一下.我第一眼的感觉就是 job 是任务的意思,Store 是商店的意思,连起来就是可以存储 Job ...

随机推荐

  1. 升级到 .NET Core 2.1

    从 .NET Core 2.0 升级到 .NET Core 2.1 最近在翻译 <Pro ASP.NET Core MVC 2>这本书,书中的示例是以 .NET Core 2.0 为基础的 ...

  2. SQL Server 2008 R2中配置作业失败后邮件发送通知

    SQL Server日常维护中难免会遇到作业失败的情况.失败后自然需要知道它失败了,除了例行检查可以发现出错以外,有一个较实时的监控还是很有必要的.比较专业的监控系统比如SCOM虽然可以监控作业执行情 ...

  3. Windows Unity ARKit发布到IOS相关设置及错误解决

    Windows 版Unity安装: 考虑到在虚拟机中运行Unity比较卡,所以采用在Windows Unity上将项目发布好然后再复制到Mac虚拟机中通过XCode进行编译的方式. Unity版本为 ...

  4. kibana Dev tool 查询结果与预期不符

      问题描述 项目使用Elasticsearch作为搜索引擎,Kibana用来进行可视化操作,Kibana中有Dev tool可供用户使用REST ful API 访问Elasticsearch,在一 ...

  5. jenkins持续集成部署

    用到的技术和工具:git + maven + jdk + jenkins,首先服务器安装git.maven.jdk,这些都不再赘述. 1:开始安装主角jenkins,首先去官网下载war包(https ...

  6. Linux 文件目录管理命令

    1.touch 用于设置空白文件或设置文件时间 touch命令参数及作用 参 数                                                             ...

  7. 深入理解Java虚拟机读书笔记8----Java内存模型与线程

    八 Java内存模型与线程   1 Java内存模型     ---主要目标:定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节.     ---此处的变量和J ...

  8. 我与OO (1)

    前言 “真正的勇士敢于面对惨淡的人生,敢于面对淋漓的鲜血” 我是谨慎拜读了鲁迅先生的名言,怀着崇敬的精神去接触这门课程的. 而当我真的经历了这门课程以后,我才发现,刘和珍君这样的觉悟,我们普通人,果然 ...

  9. 4-17疑难点 c语言之【结构体对齐】

    今天学习了结构体这一章节,了解到了结构体在分配内存的时候采取的是对齐的方式 例如: #include<stdio.h> struct test1 { int a; char b; shor ...

  10. 性能学习随笔(1)--负载均衡之f5负载均衡

    负载均衡设计涉及软件负载和硬件负载,下文转自CSDN中一篇文章涉及f5硬负载知识 ----转载:https://blog.csdn.net/tvk872/article/details/8063489 ...