f
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user