Zeus-Master-週期性排程策略實現
上文提到Zeus使用了開源的quartz來幫助其實現定時排程,但是展示給用的api有兩種,一種就是quartz原生的類似cron表示式的設定,還有一種是每小時,每天這種設定,但是後臺實現均是轉換成quartz的api實現。
來看原始碼:
CronTrigger trigger = new CronTrigger(jd.getId(), "zeus",
jd.getCronExpression());
detail = new JobDetail(jd.getId(), "zeus", TimerJob.class);
detail.getJobDataMap().put("jobId", jd.getId());
detail.getJobDataMap().put("dispatcher",
context.getDispatcher());
context.getScheduler().scheduleJob(detail, trigger);
對於quartz不熟悉的同學可以 檢視quartz的官網文件。
quartz中api需要一個 CronTrigger 觸發器用來定時,還需要job來執行。Zeus寫了一個通用的job,每個觸發器都觸發相同的任務,不同的是JobDetail內設定了需要觸發的不同宙斯任務,以及分發任務的事件dispatcher;
public static class TimerJob implements Job {
@Override
public void execute(JobExecutionContext context)
throws JobExecutionException {
String jobId = context.getJobDetail().getJobDataMap()
.getString("jobId");
Dispatcher dispatcher = (Dispatcher) context.getJobDetail()
.getJobDataMap().get("dispatcher");
ScheduleTriggerEvent ste = new ScheduleTriggerEvent(jobId);
dispatcher.forwardEvent(ste);
}
}
相關文章
- java週期排程幾種實現Java
- Flink排程之排程器、排程策略、排程模式模式
- PostgreSQL技術週刊第12期:PostgreSQL時空資料排程實踐SQL
- linux系統中的排程週期任務:cronLinux
- Linux程式排程策略Linux
- 容器化RDS|排程策略
- 實現一個分散式排程系統-LoadBalance和Ha策略分散式
- 排程器簡介,以及Linux的排程策略Linux
- Go runtime 排程器精講(五):排程策略Go
- 技術解讀 | SD-WAN的多樣性策略排程
- 【大資料開發套件排程配置實踐】——不同週期任務依賴配置大資料套件
- Quartz排程系統入門和排程高可用實現方案quartz
- haipproxy核心校驗和排程策略AI
- 詳解 Vue 生命週期實現Vue
- OS_程式排程:C++實現C++
- Kubernetes 排程器實現初探
- Linux程式排程核心實現分析Linux
- JavaScript實現自定義的生命週期JavaScript
- Java實現生命週期管理機制Java
- 簡版排程中心搭建及實現思路
- 使用Java實現定時任務排程Java
- 第 12 期 golang 中 goroutine 的排程Golang
- 第三章 Goroutine排程策略(16)Go
- 【I/O scheduler】Linux的磁碟排程策略Linux
- DolphinScheduler整合Arthas實現介面呼叫監控,提升排程任務可靠性
- VPD策略實現行級安全性
- Redis過期策略及實現原理-Redis面試題Redis面試題
- SAP Fiori 頁面的週期性動態重新整理功能的實現步驟
- javaweb使用監聽器實現定時週期性執行任務的功能JavaWeb
- ElasticSearch生命週期管理-索引策略配置與操作Elasticsearch索引
- celery 與 flask 實現非同步任務排程Flask非同步
- 實現Quartz.NET的HTTP作業排程quartzHTTP
- 實戰儲存過程排程過程儲存過程
- golang實現併發爬蟲三(用佇列排程器實現)Golang爬蟲佇列
- vue[原始碼]生命週期鉤子的實現Vue原始碼
- 實戰Docker容器排程Docker
- ELK日誌保留7天-索引生命週期策略索引
- Elasticsearch Query DSL建立滾動索引(生命週期策略)Elasticsearch索引