這篇文章主要講解了“QuartzNet的功能有哪些”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“QuartzNet的功能有哪些”吧!
專注于為中小企業(yè)提供成都網(wǎng)站制作、做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)金溪免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千多家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。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)建并直接傳遞給工廠。 只需在工廠類實(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è)類的新實(shí)例。 您可能希望創(chuàng)建自己的JobFactory實(shí)現(xiàn)來(lái)完成諸如讓應(yīng)用程序的IoC或DI容器生成/初始化作業(yè)實(shí)例之類的事情。
3)、‘Factory-Shipped’ Jobs(工廠預(yù)裝的一些有用的任務(wù)作業(yè))
Quartz還提供了許多實(shí)用工具,您可以在應(yīng)用程序中使用它們來(lái)執(zhí)行諸如發(fā)送電子郵件和調(diào)用遠(yuǎn)程對(duì)象之類的操作。 可以在Quartz.Jobs命名空間中找到這些開箱即用的作業(yè)。
感謝各位的閱讀,以上就是“QuartzNet的功能有哪些”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)QuartzNet的功能有哪些這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!