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