首页 > 应用开发 > Java > quartz详解3:quartz数据库集群-锁机制
点击(此处)折叠或打开
点击(此处)折叠或打开
点击(此处)折叠或打开
| 加锁类型 | 加锁方法 | 底层数据库操作 | 备注 |
|
executeInNonManagedTXLock |
acquireNextTrigger |
selectTriggerToAcquire selectTrigger selectJobDetail insertFiredTrigger |
查询需要点火的trigger 选择需要执行的trigger加入到fired_trigger表 |
|
for执行 triggerFired |
selectJobDetail selectCalendar updateFiredTrigger triggerExists updateTrigger |
点火trigger 修改trigger状态为可执行状态。 |
|
|
recoverJobs |
updateTriggerStatesFromOtherStates hasMisfiredTriggersInState doUpdateOfMisfiredTrigger selectTriggersForRecoveringJobs selectTriggersInState deleteFiredTriggers |
非集群环境下重新执行 failed与misfired的trigger |
|
|
retryExecuteInNonManagedTXLock |
releaseAcquiredTrigger |
updateTriggerStateFromOtherState deleteFiredTrigger |
异常情况下重新释放trigger到初使状态。 |
|
triggeredJobComplete |
selectTriggerStatus removeTrigger updateTriggerState deleteFiredTrigger |
触发JOB任务完成后的处理。 | |
|
obtainLock |
recoverMisfiredJobs |
hasMisfiredTriggersInState doUpdateOfMisfiredTrigger |
重新执行misfired的trigger 可以在启动时执行,也可以由misfired线程定期执行。 |
|
clusterRecover |
selectInstancesFiredTriggerRecords updateTriggerStatesForJobFromOtherState storeTrigger deleteFiredTriggers selectFiredTriggerRecords removeTrigger deleteSchedulerState |
集群有结点faied,让JOB能重新执行。 | |
|
executeInLock 数据库集群里等同于 executeInNonManagedTXLock |
storeJobAndTrigger |
updateJobDetail insertJobDetail triggerExists selectJobDetail updateTrigger insertTrigger |
保存JOB和TRIGGER配置 |
|
storeJob |
|
保存JOB | |
|
removeJob |
|
删除JOB | |
|
removeJobs |
|
批量删除JOB | |
|
removeTriggers |
|
批量删除triggers | |
|
storeJobsAndTriggers |
|
保存JOB和多个trigger配置 | |
|
removeTrigger |
|
删除trigger | |
|
replaceTrigger |
|
替换trigger | |
|
storeCalendar |
|
保存定时日期 | |
|
removeCalendar |
|
删除定时日期 | |
|
clearAllSchedulingData |
|
清除所有定时数据 | |
|
pauseTrigger |
|
停止触发器 | |
|
pauseJob |
|
停止任务 | |
|
pauseJobs |
|
批量停止任务 | |
|
resumeTrigger |
|
恢复触发器 | |
|
resumeJob |
|
恢复任务 | |
|
resumeJobs |
|
批量恢复任务 | |
|
pauseTriggers |
|
批量停止触发器 | |
|
resumeTriggers |
|
批量恢复触发器 | |
|
pauseAll |
|
停止所有 | |
|
resumeAll |
|
恢复所有 |
| 加锁类型 | 加锁方法 | 底层数据库操作 | 备注 |
|
obtainLock |
doCheckin |
clusterCheckIn |
判断集群状态 先用LOCK_STATE_ACCESS锁集群状态 再用LOCK_TRIGGER_ACCESS恢复集群运行 |
|
|
|
|
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/11627468/viewspace-1764753/ ,如需转载,请注明出处,否则将追究法律责任。