update keepalive

Signed-off-by: Valentyn Faychuk <valy@detee.ltd>
This commit is contained in:
Valentyn Faychuk 2024-12-26 15:17:34 +00:00
parent ce69455dd6
commit 4a6e8c4c73
Signed by: valy
GPG Key ID: F1AB995E20FEADC5
2 changed files with 10 additions and 0 deletions

@ -231,6 +231,15 @@ impl State {
.nth(skip)
}
pub async fn update_keepalive(&self) {
let mut nodes = self.nodes.write().await;
if let Some(my_info) = nodes.get_mut(&self.my_ip) {
let mut updated_info = my_info.clone();
updated_info.keepalive = SystemTime::now();
let _ = nodes.insert(self.my_ip.clone(), updated_info);
}
}
/// This returns true if the update should be further forwarded
/// For example, we never forward our own updates that came back
pub async fn process_node_update(&self, (node_ip, node_info): (String, NodeInfo)) -> bool {

@ -51,6 +51,7 @@ pub async fn heartbeat(
loop {
interval.tick().await;
println!("Heartbeat...");
state.update_keepalive().await;
state.remove_inactive_nodes().await;
let connected_ips = state.get_connected_ips().await;
println!("Connected nodes ({}): {:?}", connected_ips.len(), connected_ips);