溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

QuartzNet的功能有哪些

發(fā)布時(shí)間:2021-12-16 09:10:22 來(lái)源:億速云 閱讀:107 作者:iii 欄目:互聯(lián)網(wǎng)科技

這篇文章主要講解了“QuartzNet的功能有哪些”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“QuartzNet的功能有哪些”吧!

Quartz.Net其他功能

  Quartz以模塊化方式構(gòu)建,因此要使其運(yùn)行,需要將幾個(gè)組件“拼接”在一起。 幸運(yùn)的是,有一些助手可以實(shí)現(xiàn)這一目標(biāo)。

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

  1)、ThreadPool

  2)、JobStore

  3)、數(shù)據(jù)源(如有必要)

  4)、調(diào)度程序本身

  自從引入基于任務(wù)的作業(yè)以來(lái),線程池已經(jīng)發(fā)生了很大變化。 TODO文檔更多

  JobStores 和 DataSrouces 在本教程的第9課中進(jìn)行了討論。 值得注意的是,所有 JobStores 都實(shí)現(xiàn)了 IJobStore 接口 - 如果其中一個(gè)捆綁的JobStore不能滿足您的需求,那么您可以創(chuàng)建自己的。

  最后,您需要?jiǎng)?chuàng)建Scheduler實(shí)例。 需要為Scheduler本身指定一個(gè)名稱并交給JobStore和ThreadPool的實(shí)例。

  1、StdSchedulerFactory

  StdSchedulerFactory 是 ISchedulerFactory 接口的實(shí)現(xiàn)。 它使用一組屬性(NameValueCollection)來(lái)創(chuàng)建和初始化Quartz Scheduler。 這些屬性通常存儲(chǔ)在文件中并從文件中加載,但也可以由程序創(chuàng)建并直接傳遞給工廠。 只需在工廠類(lèi)實(shí)例上調(diào)用 getScheduler() 就可以生成調(diào)度程序,初始化它(及其ThreadPool,JobStore和DataSources),并返回其公共接口的句柄。

  Quartz發(fā)行版的“docs / config”目錄中有一些示例配置(包括屬性的描述)。 您可以在Quartz文檔的“參考”部分下的“配置”手冊(cè)中找到完整的文檔。

  2、DirectSchedulerFactory

  DirectSchedulerFactory 是另一個(gè) SchedulerFactory 實(shí)現(xiàn)。 對(duì)于那些希望以更加程序化的方式創(chuàng)建 Scheduler 實(shí)例的人來(lái)說(shuō),它非常有用。 由于以下原因,通常不鼓勵(lì)使用它:(1)它要求用戶更好地理解他們正在做什么,以及(2)它不允許聲明性配置-或者換句話說(shuō),您最終硬編碼了調(diào)度程序的所有設(shè)置。

  3、Logging

  Quartz.NET 使用 LibLob 庫(kù)來(lái)滿足其所有日志記錄需求。 Quartz 不會(huì)產(chǎn)生很多日志信息——通常只是在初始化期間產(chǎn)生一些信息,然后在 Jobs 執(zhí)行期間只產(chǎn)生關(guān)于嚴(yán)重問(wèn)題的消息。為了“優(yōu)化”日志設(shè)置(比如輸出量和輸出位置),您需要實(shí)際配置所選擇的日志框架,因?yàn)?LibLog 主要將工作委托給更成熟的日志框架,如log4net、serilog等。

  4、高級(jí)(企業(yè))功能

  集群:集群目前只適用于 AdoJobstore(JobStoreTX)。功能包括負(fù)載平衡和作業(yè)故障轉(zhuǎn)移(如果JobDetail的“請(qǐng)求恢復(fù)”標(biāo)志設(shè)置為true)。

  通過(guò)將“quartz.jobStore.clustered”屬性設(shè)置為“true”來(lái)啟用群集。 集群中的每個(gè)實(shí)例都應(yīng)使用相同的quartz屬性副本。 例外情況是使用相同的屬性,具有以下允許的例外:不同的線程池大小,以及“quartz.scheduler.instanceId”屬性的不同值。 集群中的每個(gè)節(jié)點(diǎn)必須具有唯一的instanceId,通過(guò)將“AUTO”作為此屬性的值放置,可以輕松完成(不需要不同的屬性文件)。

  永遠(yuǎn)不要在不同的機(jī)器上運(yùn)行群集,除非它們的時(shí)鐘使用某種形式的時(shí)間同步服務(wù)(守護(hù)進(jìn)程)進(jìn)行同步,這些服務(wù)定期運(yùn)行(時(shí)鐘必須在彼此的秒內(nèi))。 如果您不熟悉如何執(zhí)行此操作,請(qǐng)?jiān)L問(wèn)http://www.boulder.nist.gov/timefreq/service/its.htm。

  永遠(yuǎn)不要針對(duì)運(yùn)行任何其他實(shí)例的同一組表啟動(dòng)非群集實(shí)例。 您可能會(huì)收到嚴(yán)重的數(shù)據(jù)損壞,并且肯定會(huì)遇到不正常的行為。

  5、Quartz.Net 其他功能

  1)、Plug-Ins(插件)

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

  Quartz.Plugins 命名空間中可以找到 Quartz 附帶的以提供各種實(shí)用功能的插件。 它們提供的功能包括在調(diào)度程序啟動(dòng)時(shí)自動(dòng)調(diào)度作業(yè),記錄作業(yè)歷史記錄和觸發(fā)事件,以及確保調(diào)度程序在虛擬機(jī)退出時(shí)干凈地關(guān)閉。

  2)、JobFactory

  觸發(fā)器觸發(fā)時(shí),與其關(guān)聯(lián)的Job將通過(guò)Scheduler上配置的JobFactory實(shí)例化。 默認(rèn)的JobFactory只是激活作業(yè)類(lèi)的新實(shí)例。 您可能希望創(chuàng)建自己的JobFactory實(shí)現(xiàn)來(lái)完成諸如讓?xiě)?yīng)用程序的IoC或DI容器生成/初始化作業(yè)實(shí)例之類(lèi)的事情。

  3)、‘Factory-Shipped’ Jobs(工廠預(yù)裝的一些有用的任務(wù)作業(yè))

  Quartz還提供了許多實(shí)用工具,您可以在應(yīng)用程序中使用它們來(lái)執(zhí)行諸如發(fā)送電子郵件和調(diào)用遠(yuǎn)程對(duì)象之類(lèi)的操作。 可以在Quartz.Jobs命名空間中找到這些開(kāi)箱即用的作業(yè)。

感謝各位的閱讀,以上就是“QuartzNet的功能有哪些”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)QuartzNet的功能有哪些這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI