22 lines
788 B
Python
22 lines
788 B
Python
"""Раз в час: пора ли сменить мастера (ночь, возраст, размер контекста).
|
|
|
|
Запуск руками (кнопка в админке, `POST /api/jobs/ротация/run`) ротирует мастера
|
|
сразу, с хендаутом: так новая сессия подхватывает свежие гранулы vault.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import logging
|
|
from typing import TYPE_CHECKING
|
|
|
|
if TYPE_CHECKING:
|
|
from beaver_gateway.jobs.scheduler import JobRun
|
|
|
|
_log = logging.getLogger(__name__)
|
|
|
|
|
|
async def rotate(run: JobRun) -> None:
|
|
force = "manual" if run.trigger == "manual" else None
|
|
for master in await run.rotate(force=force):
|
|
_log.info("rotated master -> %s", master.external_id)
|