diff --git a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/prepare/RunningJobPrepareHandler.java b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/prepare/RunningJobPrepareHandler.java index 3c1e7716..1caa4ace 100644 --- a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/prepare/RunningJobPrepareHandler.java +++ b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/prepare/RunningJobPrepareHandler.java @@ -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); diff --git a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/strategy/BlockStrategies.java b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/strategy/BlockStrategies.java index 63d120c4..8b1c41b8 100644 --- a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/strategy/BlockStrategies.java +++ b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/strategy/BlockStrategies.java @@ -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); } } diff --git a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/timer/JobTimerTask.java b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/timer/JobTimerTask.java index a61ad195..3306d19c 100644 --- a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/timer/JobTimerTask.java +++ b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/timer/JobTimerTask.java @@ -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); } }