refactor: update local node
This commit is contained in:
@@ -20,7 +20,7 @@ public:
|
|||||||
void removeDeadNodes();
|
void removeDeadNodes();
|
||||||
void printMemberList();
|
void printMemberList();
|
||||||
const std::map<String, NodeInfo>& getMemberList() const { return *ctx.memberList; }
|
const std::map<String, NodeInfo>& getMemberList() const { return *ctx.memberList; }
|
||||||
void updateLocalNodeResources();
|
void updateLocalNodeResources(NodeInfo& node);
|
||||||
void heartbeatTaskCallback();
|
void heartbeatTaskCallback();
|
||||||
void updateAllMembersInfoTaskCallback();
|
void updateAllMembersInfoTaskCallback();
|
||||||
void broadcastNodeUpdate();
|
void broadcastNodeUpdate();
|
||||||
|
|||||||
@@ -380,10 +380,7 @@ void ClusterManager::heartbeatTaskCallback() {
|
|||||||
auto it = memberList.find(ctx.hostname);
|
auto it = memberList.find(ctx.hostname);
|
||||||
if (it != memberList.end()) {
|
if (it != memberList.end()) {
|
||||||
NodeInfo& node = it->second;
|
NodeInfo& node = it->second;
|
||||||
node.lastSeen = millis();
|
updateLocalNodeResources(node);
|
||||||
node.status = NodeInfo::ACTIVE;
|
|
||||||
node.uptime = millis(); // Update uptime
|
|
||||||
updateLocalNodeResources();
|
|
||||||
addOrUpdateNode(ctx.hostname, ctx.localIP);
|
addOrUpdateNode(ctx.hostname, ctx.localIP);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -481,11 +478,12 @@ void ClusterManager::printMemberList() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClusterManager::updateLocalNodeResources() {
|
void ClusterManager::updateLocalNodeResources(NodeInfo& node) {
|
||||||
auto& memberList = *ctx.memberList;
|
// Update node status and timing
|
||||||
auto it = memberList.find(ctx.hostname);
|
node.lastSeen = millis();
|
||||||
if (it != memberList.end()) {
|
node.status = NodeInfo::ACTIVE;
|
||||||
NodeInfo& node = it->second;
|
node.uptime = millis();
|
||||||
|
|
||||||
uint32_t freeHeap = ESP.getFreeHeap();
|
uint32_t freeHeap = ESP.getFreeHeap();
|
||||||
node.resources.freeHeap = freeHeap;
|
node.resources.freeHeap = freeHeap;
|
||||||
node.resources.chipId = ESP.getChipId();
|
node.resources.chipId = ESP.getChipId();
|
||||||
@@ -499,5 +497,4 @@ void ClusterManager::updateLocalNodeResources() {
|
|||||||
} else if (freeHeap < ctx.config.critical_memory_threshold_bytes) {
|
} else if (freeHeap < ctx.config.critical_memory_threshold_bytes) {
|
||||||
LOG_ERROR("Cluster", "Critical memory warning: " + String(freeHeap) + " bytes free");
|
LOG_ERROR("Cluster", "Critical memory warning: " + String(freeHeap) + " bytes free");
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user