feat: 2.4.0
1. 修复阻塞策略为并行时产生大量任务问题
This commit is contained in:
parent
ac671d2ae7
commit
67a34219ae
@ -53,4 +53,6 @@ public class JobTaskPrepareDTO {
|
||||
*/
|
||||
private LocalDateTime executionAt;
|
||||
|
||||
private boolean onlyTimeoutCheck;
|
||||
|
||||
}
|
||||
|
@ -60,15 +60,21 @@ public class JobTaskPrepareActor extends AbstractActor {
|
||||
TerminalJobPrepareHandler terminalJobPrepareHandler = SpringContext.getBeanByType(TerminalJobPrepareHandler.class);
|
||||
terminalJobPrepareHandler.handler(prepare);
|
||||
} else {
|
||||
|
||||
boolean onlyTimeoutCheck = false;
|
||||
for (JobTaskBatch jobTaskBatch : notCompleteJobTaskBatchList) {
|
||||
prepare.setExecutionAt(jobTaskBatch.getExecutionAt());
|
||||
prepare.setTaskBatchId(jobTaskBatch.getId());
|
||||
prepare.setOnlyTimeoutCheck(onlyTimeoutCheck);
|
||||
for (JobPrePareHandler prePareHandler : prePareHandlers) {
|
||||
if (prePareHandler.matches(jobTaskBatch.getTaskBatchStatus())) {
|
||||
prePareHandler.handler(prepare);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// 当存在大量待处理任务时,除了第一个任务需要执行阻塞策略,其他任务只做任务检查
|
||||
onlyTimeoutCheck = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -55,6 +55,9 @@ 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);
|
||||
|
Loading…
Reference in New Issue
Block a user