作為一個開發(fā)者,避免不了定時任務(wù)的問題,最粗暴和簡單直接的解決方案就是crontab。當(dāng)然在機(jī)器少,任務(wù)不多,定時任務(wù)之間關(guān)聯(lián)少的情況下,crontab效率還是比較高和便捷的。但當(dāng)機(jī)器越多、定時任務(wù)越多,各個任務(wù)聯(lián)系越緊密的情況下,用crontab進(jìn)行定時任務(wù)的管理配置,就會非?;靵y,嚴(yán)重影響工作效率。
成都創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站制作、成都網(wǎng)站設(shè)計與策劃設(shè)計,墊江網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:墊江等地區(qū)。墊江做網(wǎng)站價格咨詢:13518219792機(jī)器多、定時任務(wù)多的情況下,就會遇到以下問題:
1、每個服務(wù)器各個用戶下的crontab任務(wù)管理混亂,生命周期無法統(tǒng)一協(xié)調(diào)管理
2、定時任務(wù)運行異常告警難以統(tǒng)一對接
3、任務(wù)A和任務(wù)B如果存在互斥關(guān)系,crontab很難進(jìn)行互斥處理
4、隨著時間增長,當(dāng)定時任務(wù)達(dá)到幾千上萬的時候,定時任務(wù)就非常難以管理,線上跑了多個定時任務(wù),每個定時任務(wù)什么時候運行,屬于哪個應(yīng)用和哪個開發(fā)負(fù)責(zé)等等問題變得很難解決。
Linux原生Crontab調(diào)度系統(tǒng)和Quartz對比:
1、執(zhí)行粒度方面:
Crontab:進(jìn)程調(diào)度
Quartz:線程調(diào)度
線程調(diào)度優(yōu)勢:一是更節(jié)省資源,二是可以在進(jìn)程內(nèi)做數(shù)據(jù)交換,做數(shù)據(jù)交換這點很重要。
2、平臺依賴性:
Crontab支持Linux系統(tǒng)
Quartz由于是Java實現(xiàn),所以支持跨平臺。
3、調(diào)度操作集上:
Quartz的設(shè)置更為靈活,可以很方便的通過代碼完成各種自定義需求,而且完全閉包Crontab。
但是Crontab的最小調(diào)度單元為分鐘級,而Quartz可以更細(xì),Crontab實現(xiàn)自定義需求比較麻煩。
4、Job監(jiān)控方面:
Quartz支持Listener,對job運行情況監(jiān)控很方便,并且能用JobStores進(jìn)行調(diào)度信息的持久化(內(nèi)存、DB均可),進(jìn)而可以實現(xiàn)job可視化
5、高可用:
Quartz支持分布式集群,這一點很重要,而且實現(xiàn)很方便。
為什么要用分布式集群任務(wù)調(diào)度?
想象一下,現(xiàn)在有 A 、B、 C 3 臺機(jī)器同時作為集群服務(wù)器對外統(tǒng)一提供 SERVICE,3 臺機(jī)器上各有一個 QUARTZ Job,它們會按照即定的 SCHEDULE 自動執(zhí)行各自的任務(wù)。由于三臺SERVER 里都有 QUARTZ ,因此會存在重復(fù)處理 TASK 的現(xiàn)象。一般的解決方案是只在一臺服務(wù)器上裝 QUARTZ ,其它兩臺不裝,這樣的話其實就是單機(jī)了,quartz會存在單點問題,一旦裝有quartz的服務(wù)器宕了,服務(wù)就無法提供了。當(dāng)然通過改 QUARTZ JOB 的代碼也可以實現(xiàn),但是這對開發(fā)人員要求比較高,而且可能會出現(xiàn)其他問題。然而quartz本身就提供了很好的集群方案。quartz集群需要數(shù)據(jù)庫的支持(JobStore TX或者JobStoreCMT),從本質(zhì)上來說,是使集群上的每一個節(jié)點通過共享同一個數(shù)據(jù)庫來工作而達(dá)到高可用的。分布式集群任務(wù)調(diào)度,quartz是一個比較好的選擇。簡單,強(qiáng)大,穩(wěn)定。
分布式集群時有個問題,就是所有服務(wù)器時鐘應(yīng)當(dāng)要同步,以免出現(xiàn)離奇且不可預(yù)知的問題。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。