Background task: read logs from queue and broadcast
()
| 60 | |
| 61 | |
| 62 | async def log_broadcaster(): |
| 63 | """Background task: read logs from queue and broadcast""" |
| 64 | queue = crawler_manager.get_log_queue() |
| 65 | while True: |
| 66 | try: |
| 67 | # Get log entry from queue |
| 68 | entry = await queue.get() |
| 69 | # Broadcast to all WebSocket connections |
| 70 | await manager.broadcast(entry.model_dump()) |
| 71 | except asyncio.CancelledError: |
| 72 | break |
| 73 | except Exception as e: |
| 74 | print(f"Log broadcaster error: {e}") |
| 75 | await asyncio.sleep(0.1) |
| 76 | |
| 77 | |
| 78 | # Global broadcast task |
no test coverage detected