Большой рефакторинг с кодексом

This commit is contained in:
2026-02-26 21:58:21 +03:00
parent aa32c23dba
commit a1dd495d6d
15 changed files with 572 additions and 339 deletions

View File

@@ -6,14 +6,10 @@ import logging
from pathlib import Path
from config_manager import ConfigManager
from config_manager.v2.core import LogManager
from config_manager.v2 import ManagementServerSettings
from config_manager.v2.control import HttpControlChannel
logger = logging.getLogger()
# Таймаут health: без успешного execute() дольше этого времени — unhealthy.
HEALTH_TIMEOUT = 3.0
class MyApp(ConfigManager):
def __init__(self, *args, **kwargs):
@@ -31,21 +27,20 @@ class MyApp(ConfigManager):
async def main() -> None:
log_manager = LogManager()
# Один объект: и HTTP management-сервер (enabled, port), и health (health_timeout).
management_settings = ManagementServerSettings(
enabled=True,
port=8000,
health_timeout=HEALTH_TIMEOUT,
)
config_path = Path(__file__).parent / "config.yaml"
print(config_path)
app = MyApp(
str(config_path),
log_manager=log_manager,
management_settings=management_settings,
control_channels=lambda m: [
HttpControlChannel(
host="0.0.0.0",
port=8000,
timeout=3,
health_provider=m.get_health_provider(),
)
],
)
logger.info("App starting (health_timeout=%s)", HEALTH_TIMEOUT)
logger.info("App starting")
# Менеджер запускаем в фоне (start() не возвращает управление до stop).
asyncio.create_task(app.start())