【源碼系列-6】quartz源碼學習

quartz分佈式任務管理

可以分佈式的部署多個節點,quartz調度不同的節點做不同的事情

配置job方式

quartz支持兩種方式配置job,MethodInvokingJobDetailFactoryBean和JobDetailFactoryBean,其中JobDetailFactoryBean可以通過datamap傳遞參數。

配置觸發器方式

觸發器通過兩種方式配置,SimpleTriggerFactoryBean和CronTriggerFactoryBean,後者通過cron表達式配置出發邏輯

分佈式調度實現方式

調度器可以通過內存或者數據庫,通過配置數據庫信息的方式可以實現job的分佈式調度和運行
數據庫表的內容:
qrtz_blob_triggers:自定義的triggers信息
qrtz_cron_triggers:存儲cron trigger
qrtz_simple_triggers:存儲普通的trigger
qrtz_simprop_triggers:存儲calendar interval觸發器
qrtz_fired_triggers:存儲已經觸發的觸發器
qrtz_job_details:定義job內容
qrtz_calendars:定義一個時間段,可以控制觸發器在這個時間段內觸發或者不觸發
qrtz_paused_trigger_grps: 存放暫停的觸發器
qrtz_scheduler_state:存儲所有結點的scheduler,檢查是否失效
qrtz_locks:分佈式鎖表

java源碼

quartz的核心調度類是QuartzSchedulerThread,他的基類是Thread。通過ThreadPool來執行封裝job的JobRunShell。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章