refactor: heartbeat spamming log
This commit is contained in:
		
							parent
							
								
									aa10d5a55c
								
							
						
					
					
						commit
						6ec10682c0
					
				
					 1 changed files with 20 additions and 7 deletions
				
			
		| 
						 | 
				
			
			@ -39,6 +39,8 @@ class WebSocketHandler:
 | 
			
		|||
        self.connected = False
 | 
			
		||||
        self._heartbeat_task: Optional[asyncio.Task] = None
 | 
			
		||||
        self._message_task: Optional[asyncio.Task] = None
 | 
			
		||||
        self._heartbeat_count = 0
 | 
			
		||||
        self._last_processed_models: set = set()  # Cache of last processed model IDs
 | 
			
		||||
 | 
			
		||||
    async def handle_connection(self) -> None:
 | 
			
		||||
        """
 | 
			
		||||
| 
						 | 
				
			
			@ -99,7 +101,7 @@ class WebSocketHandler:
 | 
			
		|||
            )
 | 
			
		||||
 | 
			
		||||
            await self._send_message(state_report)
 | 
			
		||||
            logger.info(f"[TX → Backend] stateReport: CPU {cpu_usage:.1f}%, Memory {memory_usage:.1f}%, "
 | 
			
		||||
            logger.info(f"[TX → Backend] Initial stateReport: CPU {cpu_usage:.1f}%, Memory {memory_usage:.1f}%, "
 | 
			
		||||
                       f"GPU {gpu_usage or 'N/A'}, {len(camera_connections)} cameras")
 | 
			
		||||
 | 
			
		||||
        except Exception as e:
 | 
			
		||||
| 
						 | 
				
			
			@ -126,8 +128,14 @@ class WebSocketHandler:
 | 
			
		|||
                )
 | 
			
		||||
 | 
			
		||||
                await self._send_message(state_report)
 | 
			
		||||
                logger.info(f"[TX → Backend] Heartbeat: CPU {cpu_usage:.1f}%, Memory {memory_usage:.1f}%, "
 | 
			
		||||
                          f"GPU {gpu_usage or 'N/A'}, {len(camera_connections)} cameras")
 | 
			
		||||
 | 
			
		||||
                # Only log full details every 10th heartbeat, otherwise just show a dot
 | 
			
		||||
                self._heartbeat_count += 1
 | 
			
		||||
                if self._heartbeat_count % 10 == 0:
 | 
			
		||||
                    logger.info(f"[TX → Backend] Heartbeat #{self._heartbeat_count}: CPU {cpu_usage:.1f}%, Memory {memory_usage:.1f}%, "
 | 
			
		||||
                              f"GPU {gpu_usage or 'N/A'}, {len(camera_connections)} cameras")
 | 
			
		||||
                else:
 | 
			
		||||
                    print(".", end="", flush=True)  # Just show a dot to indicate heartbeat activity
 | 
			
		||||
 | 
			
		||||
                await asyncio.sleep(HEARTBEAT_INTERVAL)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -217,7 +225,14 @@ class WebSocketHandler:
 | 
			
		|||
                    'model_name': subscription.modelName
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
        # Check if model set has changed to avoid redundant processing
 | 
			
		||||
        current_model_ids = set(unique_models.keys())
 | 
			
		||||
        if current_model_ids == self._last_processed_models:
 | 
			
		||||
            logger.debug(f"[Model Management] Model set unchanged {list(current_model_ids)}, skipping checks")
 | 
			
		||||
            return
 | 
			
		||||
 | 
			
		||||
        logger.info(f"[Model Management] Processing {len(unique_models)} unique models: {list(unique_models.keys())}")
 | 
			
		||||
        self._last_processed_models = current_model_ids
 | 
			
		||||
 | 
			
		||||
        # Check and download models concurrently
 | 
			
		||||
        download_tasks = []
 | 
			
		||||
| 
						 | 
				
			
			@ -337,10 +352,8 @@ class WebSocketHandler:
 | 
			
		|||
        try:
 | 
			
		||||
            json_message = serialize_outgoing_message(message)
 | 
			
		||||
            await self.websocket.send_text(json_message)
 | 
			
		||||
            # Log heartbeats at INFO level with simplified format
 | 
			
		||||
            if hasattr(message, 'type') and message.type == 'stateReport':
 | 
			
		||||
                logger.info(f"[TX → Backend] {message.type}")
 | 
			
		||||
            else:
 | 
			
		||||
            # Log non-heartbeat messages only (heartbeats are logged in their respective functions)
 | 
			
		||||
            if not (hasattr(message, 'type') and message.type == 'stateReport'):
 | 
			
		||||
                logger.info(f"[TX → Backend] {json_message}")
 | 
			
		||||
        except Exception as e:
 | 
			
		||||
            logger.error(f"Failed to send WebSocket message: {e}")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue