From 6b016cef0828cbd8ead4a2ff43d5bcb6e266a584 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 09 五月 2023 15:33:23 +0800
Subject: [PATCH] ShuttleThread and LiftThread task restart
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 50 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index f2b386c..50cab14 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -606,6 +606,56 @@
}
}
+ /**
+ * 浠巖edis涓噸鍚换鍔�
+ */
+ public synchronized void restartTaskFromRedis() {
+ HashMap<Object, Object> map = redisUtil.getRedis();
+ for (Object key : map.keySet()) {
+ if (key.toString().contains("lift_wrk_no_")) {//鎻愬崌鏈轰换鍔�
+ LiftRedisCommand redisCommand = JSON.parseObject(map.get(key).toString(), LiftRedisCommand.class);
+ if (redisCommand == null) {
+ continue;
+ }
+
+ Short liftNo = redisCommand.getLiftNo();
+ LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, liftNo.intValue());
+ if (liftThread == null) {
+ continue;
+ }
+ LiftProtocol liftProtocol = liftThread.getLiftProtocol();
+ if (!liftProtocol.isIdle()) {
+ continue;
+ }
+
+ //鎻愬崌鏈哄浜庣┖闂茬姸鎬侊紝杩涜浠诲姟鐨勬仮澶�
+ liftProtocol.setTaskNo(redisCommand.getWrkNo());//灏嗘彁鍗囨満绾跨▼鍒嗛厤浠诲姟鍙�
+ liftProtocol.setProtocolStatus(LiftProtocolStatusType.WORKING);//宸ヤ綔鐘舵��
+ liftProtocol.setLiftLock(true);//鎻愬崌鏈洪攣瀹�
+
+ }else {//鍥涘悜绌挎杞︿换鍔�
+ ShuttleRedisCommand redisCommand = JSON.parseObject(map.get(key).toString(), ShuttleRedisCommand.class);
+ if (redisCommand == null) {
+ continue;
+ }
+
+ Short shuttleNo = redisCommand.getShuttleNo();
+ ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttleNo.intValue());
+ if (shuttleThread == null) {
+ continue;
+ }
+ ShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol();
+ if (!shuttleProtocol.isIdle()) {
+ continue;
+ }
+
+ //鍥涘悜绌挎杞﹀浜庣┖闂茬姸鎬侊紝杩涜浠诲姟鐨勬仮澶�
+ shuttleProtocol.setTaskNo(redisCommand.getWrkNo());//灏嗗洓鍚戠┛姊溅绾跨▼鍒嗛厤浠诲姟鍙�
+ shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.WORKING);//宸ヤ綔鐘舵��
+ }
+ }
+
+ }
/**
* 鍏ュ簱 ===>> 鍥涘悜绌挎杞﹀叆搴撲綔涓氫笅鍙�
--
Gitblit v1.9.1