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