国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Net作業(yè)調(diào)度(四)—quartz.net持久化和集群

2019-11-17 01:58:24
字體:
供稿:網(wǎng)友

Net作業(yè)調(diào)度(四)—quartz.net持久化和集群

2015-01-18 15:17 by 蘑菇先生, ... 閱讀, ... 評(píng)論, 收藏, 編輯

介紹

在實(shí)際使用quartz.net中,持久化能保證實(shí)例重啟后job不丟失、 集群能均衡服務(wù)器壓力和解決單點(diǎn)問題。

quartz.net在這兩方面配置都比較簡(jiǎn)單。

持久化

quartz.net的持久化,是把job、trigger一些信息存儲(chǔ)到數(shù)據(jù)庫(kù)里面,以解決內(nèi)存存儲(chǔ)重啟丟失。

下載sql腳本

https://github.com/quartznet/quartznet/blob/master/database/tables/tables_sqlServer.sql

創(chuàng)建個(gè)數(shù)據(jù)庫(kù),并執(zhí)行腳本

QRTZ_BLOB_TRIGGERS 以Blob 類型存儲(chǔ)的觸發(fā)器。

QRTZ_CALENDARS 存放日歷信息, quartz.net可以指定一個(gè)日歷時(shí)間范圍。

QRTZ_CRON_TRIGGERS cron表達(dá)式觸發(fā)器。

QRTZ_JOB_DETAILS job詳細(xì)信息。

QRTZ_LOCKS 集群實(shí)現(xiàn)同步機(jī)制的行鎖表

QRTZ_SCHEDULER_STATE 實(shí)例信息,集群下多使用。

quartz.net 配置

  //===持久化====            //存儲(chǔ)類型            Word=123465";            //sqlserver版本            properties["quartz.dataSource.myDS.provider"] = "SqlServer-20";

啟動(dòng)客戶端

  var properties = JobsManager.GetProperties();            var schedulerFactory = new StdSchedulerFactory(properties);            scheduler = schedulerFactory.GetScheduler();            scheduler.Start();            //var job = JobBuilder.Create<MonitorJob>()            //    .WithIdentity("test", "value")            //    .Build();            //var trigger = (ICronTrigger) TriggerBuilder.Create()            //    .WithIdentity("test", "value")            //    .WithCronSchedule("0 0/5 * * * ?")            //    .Build();            //scheduler.ScheduleJob(job, trigger);

補(bǔ)充

1: 持久化后,job只有添加一次了(數(shù)據(jù)庫(kù)已經(jīng)有了),所以不能再執(zhí)行端寫添加job的行為。這時(shí)候需要一個(gè)管理工具,動(dòng)態(tài)添加操作。

2: quartz.net 支持sql server、sqlite、MySQLOracle、mongodb(非官方版)。

集群

部署圖:

如圖quartz.net 的集群模式是依賴數(shù)據(jù)庫(kù)表的,所以要持久化配置。 集群節(jié)點(diǎn)之間是不通信的,這樣分布式的架構(gòu),很方便進(jìn)行水平擴(kuò)展。

1: 除了線程池?cái)?shù)量,instanceId可以不同外,各個(gè)節(jié)點(diǎn)的配置必須是一樣的。

2:集群中節(jié)點(diǎn)的系統(tǒng)時(shí)間一致。

3:多線程、集群中。quartz.net 利用數(shù)據(jù)庫(kù)鎖來保證job不會(huì)重復(fù)執(zhí)行。

源碼在DBSemaphore.cs、UpdateLockRowSemaphore.cs、StdRowLockSemaphore.cs

4:集群化后,某節(jié)點(diǎn)失效后,剩余的節(jié)點(diǎn)能保證job繼續(xù)執(zhí)行下去。

實(shí)例配置后啟動(dòng)。

   //cluster            properties["quartz.jobStore.clustered"] = "true";            properties["quartz.scheduler.instanceId"] = "AUTO";

簡(jiǎn)單管理界面:


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 清涧县| 皋兰县| 文昌市| 长寿区| 大连市| 伊宁市| 平顺县| 罗山县| 宜都市| 洪雅县| 比如县| 五家渠市| 东城区| 潼关县| 新干县| 怀安县| 海丰县| 龙海市| 应用必备| 安阳县| 乌审旗| 汨罗市| 大悟县| 和林格尔县| 上思县| 昆明市| 墨脱县| 开江县| 宁南县| 台南县| 长阳| 图片| 新安县| 金山区| 伽师县| 霍邱县| 富民县| 英山县| 绥滨县| 林口县| 蛟河市|