优化 job 调度:

1. 新增或修改 job 配置时,校验 handlerName 对应的 Spring Bean 存在
2. 删除 job 时,额外暂停 Trigger、取消调度,更完善
This commit is contained in:
YunaiV
2024-04-18 22:19:26 +08:00
parent 62c6c4b9bd
commit 1274f92544
4 changed files with 76 additions and 36 deletions

View File

@ -48,7 +48,7 @@ public class SchedulerManager {
.withIdentity(jobHandlerName).build();
// 创建 Trigger 对象
Trigger trigger = this.buildTrigger(jobHandlerName, jobHandlerParam, cronExpression, retryCount, retryInterval);
// 新增调度
// 新增 Job 调度
scheduler.scheduleJob(jobDetail, trigger);
}
@ -80,6 +80,10 @@ public class SchedulerManager {
*/
public void deleteJob(String jobHandlerName) throws SchedulerException {
validateScheduler();
// 暂停 Trigger 对象
scheduler.pauseTrigger(new TriggerKey(jobHandlerName));
// 取消并删除 Job 调度
scheduler.unscheduleJob(new TriggerKey(jobHandlerName));
scheduler.deleteJob(new JobKey(jobHandlerName));
}