This commit is contained in:
2026-02-11 18:16:07 -08:00
parent cc715e1fef
commit 1d0de1118b
27 changed files with 1167 additions and 1075 deletions

View File

@@ -8,7 +8,7 @@ import logging
from pathlib import Path
from typing import Optional, Dict, Any, List, Callable, Tuple
from datetime import datetime
from threading import Thread, Lock
from threading import Thread, Lock, Event
import time
from SYS.logger import log
@@ -273,6 +273,7 @@ class WorkerManager:
self.refresh_callbacks: List[Callable] = []
self.refresh_thread: Optional[Thread] = None
self._stop_refresh = False
self._refresh_stop_event = Event()
self._lock = Lock()
self.worker_handlers: Dict[str, WorkerLoggingHandler] = {}
self._worker_last_step: Dict[str, str] = {}
@@ -658,6 +659,7 @@ class WorkerManager:
f"[WorkerManager] Starting auto-refresh with {self.auto_refresh_interval}s interval"
)
self._stop_refresh = False
self._refresh_stop_event.clear()
self.refresh_thread = Thread(target=self._auto_refresh_loop, daemon=True)
self.refresh_thread.start()
@@ -665,6 +667,7 @@ class WorkerManager:
"""Stop the auto-refresh thread."""
logger.info("[WorkerManager] Stopping auto-refresh")
self._stop_refresh = True
self._refresh_stop_event.set()
if self.refresh_thread:
self.refresh_thread.join(timeout=5)
self.refresh_thread = None
@@ -679,7 +682,8 @@ class WorkerManager:
"""Main auto-refresh loop that periodically queries and notifies."""
try:
while not self._stop_refresh:
time.sleep(self.auto_refresh_interval)
if self._refresh_stop_event.wait(self.auto_refresh_interval):
break
# Check if there are active workers
active = self.get_active_workers()