From cabc8e23b0b1eb4d256813e3941a4f214b32f4e4 Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期五, 01 八月 2025 17:20:23 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/action/ShuttleAction.java | 19 +++++++++++-------- src/main/java/com/zy/core/thread/impl/TrafficControlImplThread.java | 5 +++-- src/main/java/com/zy/core/enums/RedisKeyType.java | 2 ++ src/main/java/com/zy/core/task/TrafficApplyProcess.java | 15 +++++++++++++++ 4 files changed, 31 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/zy/core/action/ShuttleAction.java b/src/main/java/com/zy/core/action/ShuttleAction.java index 6a968c0..2486dd8 100644 --- a/src/main/java/com/zy/core/action/ShuttleAction.java +++ b/src/main/java/com/zy/core/action/ShuttleAction.java @@ -360,7 +360,8 @@ } //鐢宠鍙栨秷绠″埗 - trafficControlThread.cancelTrafficControl(shuttleNo, shuttleProtocol.getTaskNo()); + cancelTrafficControl(shuttleNo, shuttleProtocol.getTaskNo()); + //鍒犻櫎redis redisUtil.del(RedisKeyType.SHUTTLE_WORK_FLAG.key + redisCommand.getWrkNo()); return 0;//绂佹鍐嶄笅鍙戝懡浠� @@ -511,16 +512,18 @@ //鏌ヨ鏄惁鐢宠绠″埗鎴愬姛 public boolean queryTrafficControl(Integer shuttleNo, Integer taskNo) { - TrafficControlThread trafficControlThread = (TrafficControlThread) SlaveConnection.get(SlaveType.TrafficControl, 1); - if (trafficControlThread == null) { + Object object = redisUtil.get(RedisKeyType.TRAFFIC_CONTROL_SUCCESS_APPLY.key + shuttleNo + "_" + taskNo); + if (object == null) { return false; } + return true; + } - TrafficControlDataModel trafficControlDataModel = trafficControlThread.queryTrafficControl(shuttleNo, taskNo); - if (trafficControlDataModel == null) { - return false; - } - + public boolean cancelTrafficControl(Integer shuttleNo, Integer taskNo) { + TrafficControlDataModel model = new TrafficControlDataModel(); + model.setShuttleNo(shuttleNo); + model.setTaskNo(taskNo); + redisUtil.set(RedisKeyType.TRAFFIC_CONTROL_CANCEL_LIST.key + shuttleNo + "_" + taskNo, model); return true; } diff --git a/src/main/java/com/zy/core/enums/RedisKeyType.java b/src/main/java/com/zy/core/enums/RedisKeyType.java index abb0917..085875f 100644 --- a/src/main/java/com/zy/core/enums/RedisKeyType.java +++ b/src/main/java/com/zy/core/enums/RedisKeyType.java @@ -20,7 +20,9 @@ //浜ょ淇℃伅 TRAFFIC_CONTROL_MAP("traffic_control_map"), TRAFFIC_CONTROL_APPLY("traffic_control_apply_"), + TRAFFIC_CONTROL_SUCCESS_APPLY("traffic_control_success_apply_"), TRAFFIC_CONTROL_REPORT_LIST("traffic_control_report_list_"), + TRAFFIC_CONTROL_CANCEL_LIST("traffic_control_cancel_list_"), TRAFFIC_CONTROL_LOCK_APPLY("traffic_control_lock_apply_"), TRAFFIC_CONTROL_SHUTTLE_APPLY_COUNT("traffic_control_shuttle_apply_count_"), diff --git a/src/main/java/com/zy/core/task/TrafficApplyProcess.java b/src/main/java/com/zy/core/task/TrafficApplyProcess.java index 2935d3e..7b7e79d 100644 --- a/src/main/java/com/zy/core/task/TrafficApplyProcess.java +++ b/src/main/java/com/zy/core/task/TrafficApplyProcess.java @@ -88,6 +88,21 @@ } } + @Scheduled(cron = "0/3 * * * * ? ") + public void processCancel() { + TrafficControlThread trafficControlThread = (TrafficControlThread) SlaveConnection.get(SlaveType.TrafficControl, 1); + if (trafficControlThread == null) { + return; + } + Set<String> keys = redisUtil.searchKeys(RedisKeyType.TRAFFIC_CONTROL_CANCEL_LIST.key); + + for (String key : keys) { + TrafficControlDataModel param = (TrafficControlDataModel) redisUtil.get(key); + redisUtil.del(key); + boolean apply = trafficControlThread.cancelTrafficControl(param.getShuttleNo(), param.getTaskNo()); + } + } + class ApplyKey{ @Getter String key; diff --git a/src/main/java/com/zy/core/thread/impl/TrafficControlImplThread.java b/src/main/java/com/zy/core/thread/impl/TrafficControlImplThread.java index 1f3f4f2..9008544 100644 --- a/src/main/java/com/zy/core/thread/impl/TrafficControlImplThread.java +++ b/src/main/java/com/zy/core/thread/impl/TrafficControlImplThread.java @@ -199,6 +199,7 @@ operateTrafficControl(param); applyRecordsMap.remove(shuttleNo); + redisUtil.set(RedisKeyType.TRAFFIC_CONTROL_SUCCESS_APPLY.key + shuttleNo + "_" + taskNo, 1, 60 * 60); News.info("receipt traffic {},{}", shuttleNo, taskNo); return true; } @@ -259,7 +260,7 @@ } @Override - public synchronized boolean cancelTrafficControl(Integer shuttleNo, Integer taskNo) { + public boolean cancelTrafficControl(Integer shuttleNo, Integer taskNo) { TrafficControlDataModel dataModel = queryTrafficControl(shuttleNo, taskNo); if (dataModel == null) { return false; @@ -273,7 +274,7 @@ } @Override - public synchronized boolean forceCancelTrafficControl(Integer shuttleNo) { + public boolean forceCancelTrafficControl(Integer shuttleNo) { TrafficControlDataModel dataModel = queryTrafficControl(shuttleNo); if (dataModel == null) { return false; -- Gitblit v1.9.1