Quellcode durchsuchen

实时统计延迟版本。

skyffire vor 6 Monaten
Ursprung
Commit
0ef4915e44
1 geänderte Dateien mit 1 neuen und 25 gelöschten Zeilen
  1. 1 25
      src/ws_manager.rs

+ 1 - 25
src/ws_manager.rs

@@ -107,7 +107,6 @@ impl WsManager {
     fn start_delay_info_reporter(&self) -> Result<(), std::io::Error> {
         let managers_arc_clone = Arc::clone(&self.managers);
         let running_clone = Arc::clone(&self.running);
-        const RESET_THRESHOLD: u64 = 1_0000_0000; // 1亿次计数阈值
 
         spawn(async move {
             let mut interval = tokio::time::interval(Duration::from_secs(60));
@@ -121,7 +120,6 @@ impl WsManager {
 
                 let mut total_delay_sum = 0u64;
                 let mut total_message_count = 0u64;
-                let mut needs_reset = false; // 标记是否需要重置
 
                 // --- 第一步:收集所有 DataManager 的统计数据 ---
                 let managers_guard = managers_arc_clone.lock().await; // 锁定 Vec<Arc<Mutex<DataManager>>>
@@ -134,9 +132,8 @@ impl WsManager {
                     total_delay_sum = total_delay_sum.saturating_add(current_sum);
                     total_message_count = total_message_count.saturating_add(current_count);
 
-                    // 可以在这里检查总数是否已超阈值,但为了逻辑清晰,我们在聚合后检查
+                    manager_lock.reset_delay_stats(); // 调用重置方法 (使用原子写)
                 }
-                // 释放 managers_guard (Vec 的锁)
 
                 // --- 第二步:计算并报告平均延迟 ---
                 if total_message_count > 0 {
@@ -145,30 +142,9 @@ impl WsManager {
                         "当前 WS 平均延迟: {:.2} 毫秒 (基于 {} 条消息测量)",
                         average_delay, total_message_count
                     );
-
-                    // 检查是否达到重置阈值
-                    if total_message_count >= RESET_THRESHOLD { // 使用 >= 更安全
-                        needs_reset = true;
-                        info!(
-                            "总消息计数 {} >= 阈值 {}, 将在本次报告后重置所有计数器。",
-                            total_message_count, RESET_THRESHOLD
-                        );
-                    }
                 } else {
                     info!("WS 延迟报告:本周期内未收到用于计算延迟的消息。");
                 }
-
-                // --- 第三步:如果需要,执行重置 ---
-                if needs_reset {
-                    // 再次获取 Vec 的锁来执行重置操作
-                    let managers_guard_for_reset = managers_arc_clone.lock().await;
-                    for manager_arc in managers_guard_for_reset.iter() {
-                        let manager_lock = manager_arc.lock().await; // 锁定 DataManager
-                        manager_lock.reset_delay_stats(); // 调用重置方法 (使用原子写)
-                    }
-                    // 释放锁
-                    info!("所有 DataManager 的延迟统计已重置。");
-                }
             }
             info!("延迟报告任务已停止。");
         });