一、介绍

今天是这个系列的最后一篇文章了,主要功能说的差不多了,我们来看看其他相关的内容。话说回来,虽然是这个系列的最后一篇文章,并不代表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. 数据传输流程和socket简单操作

    一.***C/S架构:客户端(client)/服务端(server)架构, B/S架构:浏览器(browser) / 服务端(server)架构 软件cs架构:浏览器,qq,微信,陌陌等等硬件cs架构 ...

  2. 用 Python 获取 B 站播放历史记录

    用 Python 获取 B 站播放历史记录 最近 B 站出了一个年度报告,统计用户一年当中在 B 站上观看视频的总时长和总个数.过去一年我居然在 B 站上看了2600+个视频,总计251个小时,居然花 ...

  3. JavaScript数组方法--slice、sort、splice

    数组常用方法应该只剩下最后这哥仨了,他们都是最早的ECMA-262标准的方法,结果写着写着,居然把他们写到最后了. slice:slice() 方法返回一个新的数组对象,这一对象是一个由 begin和 ...

  4. sql获取时间段内的所有日期

    ,'2015-01-01 00:00:00') h INTO vinson_h DELETE vinson_h DECLARE @h int SELECT @h=DATEDIFF(HOUR,'2015 ...

  5. fedora 26 安装 mplayer smplayer

    dnf install mplayer dnf install smplayer 提示仓库 里没有这个软件 fedora默认不提供一些有版权争议的软件,非开源的项目包,所以需要用rpm fusion源 ...

  6. SAP Solution Manager 能够连接到 SAP Service Marketplace

    使用 在该步骤中,您要确保 SAP Solution Manager 能够连接到 SAP Service Marketplace. 作业 SAP Support Portal(SAPOSS)的 RFC ...

  7. PHP PDF文件上传

    /** * 上传PDF文件 */ function UploadPdf(){ if(is_array($_FILES)){ $tmp_file = $_FILES['pdf'] ['tmp_name' ...

  8. C++中#include<iostream>

    #include 是个包含命令,就是把iostream.h这个文件里的内容复制到这个地方 iostream.h是input output stream的简写,意思为标准的输入输出流头文件.它包含: ( ...

  9. sql 日志文件截断收缩

    use mydb ALTER DATABASE mydb SET RECOVERY SIMPLE WITH NO_WAIT ALTER DATABASE mydb SET RECOVERY SIMPL ...

  10. rad 10.2

    最大分辨率跟笔记本走了 笔记本最大分辨率 1388 程序界面是 1980*1080 笔记本打开过程序,就自动变为  1388了,界面全乱了.因为设置的 锚点是 右下.