From 5bb5ea1aa555c5e0f52beec866bfd5779efcc39e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E7=8E=89=E4=B8=9C?= <129883742+liyudong2018@users.noreply.github.com> Date: Thu, 18 Sep 2025 11:31:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/hivekion/room/bean/Room.java | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/hivekion/room/bean/Room.java b/src/main/java/com/hivekion/room/bean/Room.java index 961fe81..f2ef23b 100644 --- a/src/main/java/com/hivekion/room/bean/Room.java +++ b/src/main/java/com/hivekion/room/bean/Room.java @@ -10,6 +10,7 @@ import com.hivekion.scenario.bean.ScenarioWsParam; import java.time.format.DateTimeFormatter; import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.NavigableMap; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentNavigableMap; @@ -125,16 +126,19 @@ public class Room implements AutoCloseable { sendRemainTime((totalTime.get() - curTime)); - Map actions = actionMap.ceilingEntry(curTime); - if (actions != null && !actions.isEmpty()) { + NavigableMap> actions = actionMap.headMap(curTime, true); + if (!actions.isEmpty() ) { + actions.forEach((key, action) -> { + action.forEach((taskAction, task) -> { + actionExecutor.submit(task::doSomeThing); + }); + }); + - for (Map.Entry entry : actions.entrySet()) { - actionExecutor.submit(entry.getValue()::doSomeThing); - } // 全部执行后再清空 - actions.clear(); - actionMap.remove(curTime); + + actions.clear(); } }, 0, 1, TimeUnit.SECONDS); }