Сделал сам

This commit is contained in:
2026-02-21 23:35:16 +03:00
parent b2442f4d91
commit 2b02af60d5
2 changed files with 9 additions and 4 deletions

View File

@@ -3,10 +3,12 @@
Запускает воркер и периодическое обновление конфига, поднимает management-сервер и control-канал при наличии настроек."""
from __future__ import annotations
import os
import asyncio
import logging
import time
from typing import Any, Optional
import logging
from ...v1.log_manager import LogManager
from ..control.base import ControlChannel
@@ -20,6 +22,7 @@ from ..types import HealthPayload, LifecycleState, ManagementServerSettings
from .config_loader import ConfigLoader
from .scheduler import WorkerLoop
logger = logging.getLogger(__name__)
class ConfigManagerV2:
DEFAULT_UPDATE_INTERVAL = 5
@@ -35,8 +38,9 @@ class ConfigManagerV2:
"""Инициализация подсистем менеджера и состояния рантайма."""
self.path = path
self.config: Any = None
self.update_interval = self.DEFAULT_UPDATE_INTERVAL
self.work_interval = self.DEFAULT_WORK_INTERVAL
# Интервалы опроса (минуты): только здесь, в конфиг не пишем
self.update_interval = int(os.environ.get("UPDATE_INTERVAL", self.DEFAULT_UPDATE_INTERVAL))
self.work_interval = int(os.environ.get("WORK_INTERVAL", self.DEFAULT_WORK_INTERVAL))
self._loader = ConfigLoader(path)
self._log_manager = log_manager or LogManager()
@@ -123,6 +127,7 @@ class ConfigManagerV2:
async def _worker_loop(self) -> None:
"""Вызывать execute() циклически до запроса остановки."""
logger.debug(f"Запускаем _worker_loop с интервалом {self.work_interval}")
worker = WorkerLoop(
execute=self.execute,
get_interval=lambda: self.work_interval,