feat: 2.4.0
1. 调整覆盖任务执行顺序
This commit is contained in:
parent
67a34219ae
commit
9218354d67
@ -58,6 +58,7 @@ public class RunningJobPrepareHandler extends AbstractJobPrePareHandler {
|
|||||||
if (prepare.isOnlyTimeoutCheck()) {
|
if (prepare.isOnlyTimeoutCheck()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
BlockStrategies.BlockStrategyContext blockStrategyContext = JobTaskConverter.INSTANCE.toBlockStrategyContext(prepare);
|
BlockStrategies.BlockStrategyContext blockStrategyContext = JobTaskConverter.INSTANCE.toBlockStrategyContext(prepare);
|
||||||
blockStrategyContext.setOperationReason(jobOperationReasonEnum);
|
blockStrategyContext.setOperationReason(jobOperationReasonEnum);
|
||||||
BlockStrategy blockStrategyInterface = BlockStrategies.BlockStrategyEnum.getBlockStrategy(blockStrategy);
|
BlockStrategy blockStrategyInterface = BlockStrategies.BlockStrategyEnum.getBlockStrategy(blockStrategy);
|
||||||
|
@ -83,6 +83,11 @@ public class BlockStrategies {
|
|||||||
public void block(final BlockStrategyContext context) {
|
public void block(final BlockStrategyContext context) {
|
||||||
log.warn("阻塞策略为覆盖. taskBatchId:[{}]", context.getTaskBatchId());
|
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);
|
JobTaskStopHandler instanceInterrupt = JobTaskStopFactory.getJobTaskStop(context.taskType);
|
||||||
TaskStopJobContext stopJobContext = JobTaskConverter.INSTANCE.toStopJobContext(context);
|
TaskStopJobContext stopJobContext = JobTaskConverter.INSTANCE.toStopJobContext(context);
|
||||||
@ -90,10 +95,6 @@ public class BlockStrategies {
|
|||||||
stopJobContext.setNeedUpdateTaskStatus(Boolean.TRUE);
|
stopJobContext.setNeedUpdateTaskStatus(Boolean.TRUE);
|
||||||
instanceInterrupt.stop(stopJobContext);
|
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);
|
Duration duration = Duration.between(preTriggerAt, nextTriggerAt);
|
||||||
long milliseconds = duration.toMillis();
|
long milliseconds = duration.toMillis();
|
||||||
|
|
||||||
log.info("常驻任务监控. 任务时间差:[{}] 取余:[{}]", milliseconds, System.currentTimeMillis() % 100);
|
log.info("常驻任务监控. 任务时间差:[{}] 取余:[{}]", milliseconds, System.currentTimeMillis() % 1000);
|
||||||
job.setNextTriggerAt(nextTriggerAt);
|
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);
|
ResidentTaskCache.refresh(jobTimerTaskDTO.getJobId(), nextTriggerAt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user