refactor: 优化 unsubscribe_points_from_source 中 status 锁粒度,使用 get_session 函数
This commit is contained in:
parent
4d88bcbce3
commit
487d3cdf26
|
|
@ -1207,14 +1207,16 @@ impl ConnectionManager {
|
|||
}
|
||||
|
||||
let target_ids: std::collections::HashSet<Uuid> = point_ids.into_iter().collect();
|
||||
let (session, subscription_id, point_item_pairs) = {
|
||||
let session = self.get_session(source_id).await;
|
||||
let Some(session) = session else {
|
||||
return Ok(0);
|
||||
};
|
||||
|
||||
let (subscription_id, point_item_pairs) = {
|
||||
let status = self.status.read().await;
|
||||
let Some(conn_status) = status.get(&source_id) else {
|
||||
return Ok(0);
|
||||
};
|
||||
let Some(session) = conn_status.session.clone() else {
|
||||
return Ok(0);
|
||||
};
|
||||
let Some(subscription_id) = conn_status.subscription_id else {
|
||||
return Ok(0);
|
||||
};
|
||||
|
|
@ -1226,7 +1228,7 @@ impl ConnectionManager {
|
|||
.map(|(point_id, monitored_item_id)| (*point_id, *monitored_item_id))
|
||||
.collect();
|
||||
|
||||
(session, subscription_id, items)
|
||||
(subscription_id, items)
|
||||
};
|
||||
|
||||
if point_item_pairs.is_empty() {
|
||||
|
|
|
|||
Loading…
Reference in New Issue