From 89e641d91e5e7bb3e77db7e066e32db68139868e Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期一, 27 十一月 2023 10:40:19 +0800
Subject: [PATCH] plc连接状态存储按设备存储
---
service/plc.go | 32 +++++++++++++++++++-------------
1 files changed, 19 insertions(+), 13 deletions(-)
diff --git a/service/plc.go b/service/plc.go
index ac23286..c577998 100644
--- a/service/plc.go
+++ b/service/plc.go
@@ -15,7 +15,6 @@
"fmt"
"github.com/spf13/cast"
"sync"
- "sync/atomic"
)
// 涓插彛涓嶆敮鎸佸苟琛岃鍐欙紝鎵�浠ラ渶瑕佸姞涓攣锛岄槻姝imeout鍜岃祫婧愪笉鍙敤鎶ラ敊
@@ -211,32 +210,39 @@
}
}
-var connectionStatus atomic.Bool
-
-var failureRemainingOpportunities atomic.Int64
+var connectionStatus sync.Map
const (
defaultFailureRemainingOpportunities = 20
)
func IsConnect() bool {
- return connectionStatus.Load()
+ val, ok := connectionStatus.Load(conf.Conf.CurrentDeviceID)
+ if !ok {
+ return false
+ }
+ failureRemainingOpportunities := val.(int)
+ return failureRemainingOpportunities > 0
}
func FailureRemainingOpportunitiesDecr() {
- newValue := failureRemainingOpportunities.Add(-1)
- if newValue <= 0 {
- connectionStatus.Store(false)
+ val, ok := connectionStatus.Load(conf.Conf.CurrentDeviceID)
+ if !ok {
+ return
}
+ failureRemainingOpportunities := val.(int)
+ if failureRemainingOpportunities > 0 {
+ failureRemainingOpportunities--
+ }
+ connectionStatus.Store(conf.Conf.CurrentDeviceID, failureRemainingOpportunities)
return
}
func FailureRemainingOpportunitiesReset() {
- if failureRemainingOpportunities.Load() < defaultFailureRemainingOpportunities {
- failureRemainingOpportunities.Store(defaultFailureRemainingOpportunities)
- }
- if connectionStatus.Load() == false {
- connectionStatus.Store(true)
+ val, ok := connectionStatus.Load(conf.Conf.CurrentDeviceID)
+ if !ok || val.(int) < defaultFailureRemainingOpportunities {
+ connectionStatus.Store(conf.Conf.CurrentDeviceID, defaultFailureRemainingOpportunities)
+ return
}
return
}
--
Gitblit v1.8.0