refactor: 优化 heartbeat 中 status 锁粒度,使用 get_session 函数

This commit is contained in:
caoqianming 2026-03-06 09:09:42 +08:00
parent afac9f1eb9
commit 4d88bcbce3
1 changed files with 5 additions and 10 deletions

View File

@ -277,10 +277,9 @@ impl ConnectionManager {
ticker.tick().await; ticker.tick().await;
// 检查session是否有效 // 检查session是否有效
let session_valid = { let session = manager.get_session(source_id).await;
let status = manager.status.read().await;
if let Some(conn_status) = status.get(&source_id) { let session_valid = if let Some(session) = session {
if let Some(session) = conn_status.session.as_ref() {
// 尝试读取当前时间来验证连接 // 尝试读取当前时间来验证连接
let node_id = NodeId::new(0, 2258); // ServerCurrentTime节点 let node_id = NodeId::new(0, 2258); // ServerCurrentTime节点
let read_request = ReadValueId { let read_request = ReadValueId {
@ -294,12 +293,8 @@ impl ConnectionManager {
Ok(_) => true, Ok(_) => true,
Err(_) => false, Err(_) => false,
} }
} else { } else {
false false
}
} else {
false
}
}; };
if !session_valid { if !session_valid {