diff --git a/powerjob-server/powerjob-server-core/src/main/java/tech/powerjob/server/core/scheduler/InstanceStatusCheckService.java b/powerjob-server/powerjob-server-core/src/main/java/tech/powerjob/server/core/scheduler/InstanceStatusCheckService.java index 4652904f..a6674c6d 100644 --- a/powerjob-server/powerjob-server-core/src/main/java/tech/powerjob/server/core/scheduler/InstanceStatusCheckService.java +++ b/powerjob-server/powerjob-server-core/src/main/java/tech/powerjob/server/core/scheduler/InstanceStatusCheckService.java @@ -145,7 +145,11 @@ public class InstanceStatusCheckService { log.info("[InstanceStatusChecker] RunningInstance status check using {}.", stopwatch.stop()); } - private void handleWaitingDispatchInstance(List partAppIds) { + private void handleWaitingDispatchInstance(List appIds) { + + // 存在移除操作,需要重新创建集合,否则会导致外层抛出 NoSuchElementException: null + List partAppIds = Lists.newArrayList(appIds); + // 1. 检查等待 WAITING_DISPATCH 状态的任务 long threshold = System.currentTimeMillis() - DISPATCH_TIMEOUT_MS; List waitingDispatchInstances = instanceInfoRepository.findAllByAppIdInAndStatusAndExpectedTriggerTimeLessThan(partAppIds, InstanceStatus.WAITING_DISPATCH.getV(), threshold, PageRequest.of(0, MAX_BATCH_NUM_INSTANCE));