refactor: 优化 heartbeat 中 status 锁粒度,使用 get_session 函数
This commit is contained in:
parent
afac9f1eb9
commit
4d88bcbce3
|
|
@ -277,10 +277,9 @@ impl ConnectionManager {
|
|||
ticker.tick().await;
|
||||
|
||||
// 检查session是否有效
|
||||
let session_valid = {
|
||||
let status = manager.status.read().await;
|
||||
if let Some(conn_status) = status.get(&source_id) {
|
||||
if let Some(session) = conn_status.session.as_ref() {
|
||||
let session = manager.get_session(source_id).await;
|
||||
|
||||
let session_valid = if let Some(session) = session {
|
||||
// 尝试读取当前时间来验证连接
|
||||
let node_id = NodeId::new(0, 2258); // ServerCurrentTime节点
|
||||
let read_request = ReadValueId {
|
||||
|
|
@ -296,10 +295,6 @@ impl ConnectionManager {
|
|||
}
|
||||
} else {
|
||||
false
|
||||
}
|
||||
} else {
|
||||
false
|
||||
}
|
||||
};
|
||||
|
||||
if !session_valid {
|
||||
|
|
|
|||
Loading…
Reference in New Issue