这篇文章主要讲解了“QuartzNet的功能有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“QuartzNet的功能有哪些”吧!
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容器生成/初始化作业实例之类的事情。
3)、‘Factory-Shipped’ Jobs(工厂预装的一些有用的任务作业)
Quartz还提供了许多实用工具,您可以在应用程序中使用它们来执行诸如发送电子邮件和调用远程对象之类的操作。 可以在Quartz.Jobs命名空间中找到这些开箱即用的作业。
感谢各位的阅读,以上就是“QuartzNet的功能有哪些”的内容了,经过本文的学习后,相信大家对QuartzNet的功能有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。