Skip to content

Commit 991bac3

Browse files
committed
feat: enhance NodeRecordManager initialization and startup process
1 parent f1e0d9b commit 991bac3

File tree

1 file changed

+24
-6
lines changed

1 file changed

+24
-6
lines changed

internal/analytic/node_record.go

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,15 +64,16 @@ func (m *NodeRecordManager) Restart() {
6464
// For backward compatibility
6565
var (
6666
defaultManager *NodeRecordManager
67-
setupOnce sync.Once
6867
restartMu sync.Mutex
6968
)
7069

7170
// InitDefaultManager initializes the default NodeRecordManager
7271
func InitDefaultManager() {
73-
setupOnce.Do(func() {
74-
defaultManager = NewNodeRecordManager(context.Background())
75-
})
72+
if defaultManager != nil {
73+
defaultManager.Stop()
74+
}
75+
defaultManager = NewNodeRecordManager(context.Background())
76+
defaultManager.Start()
7677
}
7778

7879
// RestartRetrieveNodesStatus restarts the node status retrieval process
@@ -83,6 +84,7 @@ func RestartRetrieveNodesStatus() {
8384

8485
if defaultManager == nil {
8586
InitDefaultManager()
87+
return
8688
}
8789

8890
defaultManager.Restart()
@@ -95,6 +97,22 @@ func StartRetrieveNodesStatus(ctx context.Context) *NodeRecordManager {
9597
return manager
9698
}
9799

100+
// StartDefaultManager starts the default node status retrieval manager
101+
// This should be called at system startup
102+
func StartDefaultManager() {
103+
restartMu.Lock()
104+
defer restartMu.Unlock()
105+
106+
if defaultManager != nil {
107+
logger.Info("DefaultManager already running, restarting...")
108+
defaultManager.Restart()
109+
return
110+
}
111+
112+
logger.Info("Starting default NodeRecordManager...")
113+
InitDefaultManager()
114+
}
115+
98116
func RetrieveNodesStatus(ctx context.Context) {
99117
logger.Info("RetrieveNodesStatus start")
100118
defer logger.Info("RetrieveNodesStatus exited")
@@ -130,8 +148,8 @@ func RetrieveNodesStatus(ctx context.Context) {
130148
if err := nodeAnalyticRecord(e, ctx); err != nil {
131149
logger.Error(err)
132150
mutex.Lock()
133-
if NodeMap[env.ID] != nil {
134-
NodeMap[env.ID].Status = false
151+
if NodeMap[e.ID] != nil {
152+
NodeMap[e.ID].Status = false
135153
}
136154
mutex.Unlock()
137155
select {

0 commit comments

Comments
 (0)