feat: 2.4.0
1. 调整覆盖任务执行顺序
This commit is contained in:
parent
15f494c353
commit
2abdf57f8e
@ -58,6 +58,7 @@ public class RunningJobPrepareHandler extends AbstractJobPrePareHandler {
|
||||
if (prepare.isOnlyTimeoutCheck()) {
|
||||
return;
|
||||
}
|
||||
|
||||
BlockStrategies.BlockStrategyContext blockStrategyContext = JobTaskConverter.INSTANCE.toBlockStrategyContext(prepare);
|
||||
blockStrategyContext.setOperationReason(jobOperationReasonEnum);
|
||||
BlockStrategy blockStrategyInterface = BlockStrategies.BlockStrategyEnum.getBlockStrategy(blockStrategy);
|
||||
|
@ -83,6 +83,11 @@ public class BlockStrategies {
|
||||
public void block(final BlockStrategyContext context) {
|
||||
log.warn("阻塞策略为覆盖. taskBatchId:[{}]", context.getTaskBatchId());
|
||||
|
||||
// 重新生成任务
|
||||
JobTaskBatchGenerator jobTaskBatchGenerator = SpringContext.getBeanByType(JobTaskBatchGenerator.class);
|
||||
JobTaskBatchGeneratorContext jobTaskBatchGeneratorContext = JobTaskConverter.INSTANCE.toJobTaskGeneratorContext(context);
|
||||
jobTaskBatchGenerator.generateJobTaskBatch(jobTaskBatchGeneratorContext);
|
||||
|
||||
// 停止任务
|
||||
JobTaskStopHandler instanceInterrupt = JobTaskStopFactory.getJobTaskStop(context.taskType);
|
||||
TaskStopJobContext stopJobContext = JobTaskConverter.INSTANCE.toStopJobContext(context);
|
||||
@ -90,10 +95,6 @@ public class BlockStrategies {
|
||||
stopJobContext.setNeedUpdateTaskStatus(Boolean.TRUE);
|
||||
instanceInterrupt.stop(stopJobContext);
|
||||
|
||||
// 重新生成任务
|
||||
JobTaskBatchGenerator jobTaskBatchGenerator = SpringContext.getBeanByType(JobTaskBatchGenerator.class);
|
||||
JobTaskBatchGeneratorContext jobTaskBatchGeneratorContext = JobTaskConverter.INSTANCE.toJobTaskGeneratorContext(context);
|
||||
jobTaskBatchGenerator.generateJobTaskBatch(jobTaskBatchGeneratorContext);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -122,10 +122,10 @@ public class JobTimerTask implements TimerTask {
|
||||
Duration duration = Duration.between(preTriggerAt, nextTriggerAt);
|
||||
long milliseconds = duration.toMillis();
|
||||
|
||||
log.info("常驻任务监控. 任务时间差:[{}] 取余:[{}]", milliseconds, System.currentTimeMillis() % 100);
|
||||
log.info("常驻任务监控. 任务时间差:[{}] 取余:[{}]", milliseconds, System.currentTimeMillis() % 1000);
|
||||
job.setNextTriggerAt(nextTriggerAt);
|
||||
|
||||
JobTimerWheel.register(jobTimerTaskDTO.getTaskBatchId(), timerTask, milliseconds - System.currentTimeMillis() % 100, TimeUnit.MILLISECONDS);
|
||||
JobTimerWheel.register(jobTimerTaskDTO.getTaskBatchId(), timerTask, milliseconds - System.currentTimeMillis() % 1000, TimeUnit.MILLISECONDS);
|
||||
ResidentTaskCache.refresh(jobTimerTaskDTO.getJobId(), nextTriggerAt);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user