Quartz.Net进阶之七:QuartzNet其他的功能简述
一、介绍
今天是这个系列的最后一篇文章了,主要功能说的差不多了,我们来看看其他相关的内容。话说回来,虽然是这个系列的最后一篇文章,并不代表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其他的功能简述的更多相关文章
- Bing Maps进阶系列四:路由功能服务(RouteService)
Bing Maps进阶系列四:路由功能服务(RouteService) Bing Maps提供的路由功能服务(RouteService)可以实现多方位的计算地图上的路线指示,路径行程等功能,比如说实现 ...
- visual studio调试功能简述
vs调试简述 1.调试功能简述 vs提供了很强大的调试功能,能够让我们一步步执行中找到每个变量的值,便于查错改错.很多IDE都有调试功能,在使用调试功能时,记得先创建一个项目,哪怕是一个文件,也创建一 ...
- Hadoop YARN学习之组件功能简述(3)
Hadoop YARN学习之组件功能简述(3) 1. YARN的三大组件功能简述: ResourceManager(RM)是集群的资源的仲裁者, 它有两部分:一个可插拔的调度器和一个Applicati ...
- SAP Marketing Cloud功能简述(五) : 销售计划管理
Grace前四篇介绍SAP Marketing Cloud的文章: SAP Marketing Cloud功能简述(一) : Contacts和Profiles SAP Marketing Cloud ...
- SAP Marketing Cloud功能简述(四) : 线索和客户管理
这个系列的前三篇文章Grace Dong已经给大家带来了下面的内容: SAP Marketing Cloud功能简述(一) : Contacts和Profiles SAP Marketing Clou ...
- SAP Marketing Cloud功能简述(三) 营销活动内容设计和产品推荐
Grace的前两篇文章: SAP Marketing Cloud功能简述(一) : Contacts和Profiles SAP Marketing Cloud功能简述(二) : Target Grou ...
- SAP Marketing Cloud功能简述(二) : Target Group
这个系列的第一篇文章 SAP Marketing Cloud功能简述(一) : Contacts和Profiles,我向大家介绍了SAP Marketing Cloud里的Contacts和Profi ...
- Net作业调度(三) — Quartz.Net进阶
介绍 前面介绍Quartz.Net的基本用法,但在实际应用中,往往有更多的特性需求,比如记录job执行的执行历史,发邮件等. 阅读目录 Quartz.Net插件 TriggerListener,Job ...
- Quartz.Net进阶之六:详述 JobStores
一.介绍 今天开始学习 JobStore,别的先不说,也不用翻译软件来翻译,直接从字面意思看来理解一下.我第一眼的感觉就是 job 是任务的意思,Store 是商店的意思,连起来就是可以存储 Job ...
随机推荐
- redmine2.5升级到3.4
第一.安装需要升级的版本 参考文档:https://www.cnblogs.com/panwenbin-logs/p/10174525.html 二.备份源数据 [root@localhost ~]# ...
- mybatis入门篇:Mybatis高级查询
1.ResultMap的association与collection association与collection功能类似,区别是一对一与一对多,这里以association为例. 首先说明一下需求: ...
- SQL多表操作
1.多表之间的建表原则 一对多:商品和分类 建表原则:在多的一方添加一个外键,指向一的一方的主键 多对多:老师和学生,学生和课程 建表原则:建立一张中间表,将多对多的关系,拆分成一对多的关系,中间表至 ...
- 监控linux服务器是否能登陆 邮件报警
import smtplibfrom email.mime.text import MIMETextimport telnetlibimport timedef SendEmail(fromAdd,t ...
- 比较C#中几种常见的复制字节数组方法的效率
在日常编程过程中,我们可能经常需要Copy各种数组,一般来说有以下几种常见的方法:Array.Copy,IList<T>.Copy,BinaryReader.ReadBytes,Buffe ...
- ThinkPHP 整合微信支付 扫码支付 模式二 图文教程
这篇文章主要介绍扫码支付场景二. 目前有两种模式,模式一比模式二稍微复杂点,至于模式一与模式二的具体内容,流程,微信开发文档都有详细介绍,这里就不多说废话,接下来赶紧上教程! [title]下载SDK ...
- CCNA学习视频
CCNA:链接:https://pan.baidu.com/s/1aiZC4pbYIu9qJSWcVfKwWw 提取码请私信楼主
- 深入理解BERT Transformer ,不仅仅是注意力机制
来源商业新知网,原标题:深入理解BERT Transformer ,不仅仅是注意力机制 BERT是google最近提出的一个自然语言处理模型,它在许多任务 检测上表现非常好. 如:问答.自然语言推断和 ...
- Cacti性能优化和监控H3C交换机
1.一般使用spine比较多,spine是一个基于C语言的,非常快速的轮询引擎.它是默认的cmd.php轮询的可选替代 wget http://www.cacti.net/downloads/spin ...
- nginx 做数据仓库时,location 404 Not Found,发现找不到要用的数据报:Not Found
背景: 获得远程机器某个目录下的数据文件 方案:使用Nginx配置 1./home/ftp/www/ 下面有images 文件夹,为了访问images下面文件,配置Nginx如下: location ...