- 后端:强化平台/审批/资源/系统接口权限校验与操作日志,更新权限设计文档与测试用例 - 存储:新增 MinIO 独立部署适配(端口 19000/19001),外部端点与 host-gateway 互通 - 离线:打包 tiktoken cl100k_base 词表进镜像,避免无网环境联网下载 - 其他:算力节点接口微调,前端微调创建页小修,忽略 MinIO 运行时数据 Co-Authored-By: Claude <noreply@anthropic.com>
34 lines
1.3 KiB
Python
34 lines
1.3 KiB
Python
from __future__ import annotations
|
|
|
|
import asyncio
|
|
|
|
from app.core.config import get_settings
|
|
from app.core.logging import get_logger
|
|
from app.modules.compute_gateway.sync import poll_compute_jobs_once
|
|
|
|
|
|
logger = get_logger(__name__)
|
|
|
|
|
|
async def run_compute_poller() -> None:
|
|
settings = get_settings()
|
|
if settings.compute_mode == "simulator" or settings.compute_status_sync_mode != "polling":
|
|
logger.info("compute poller disabled", extra={"compute_mode": settings.compute_mode})
|
|
return
|
|
|
|
interval = max(3, settings.compute_poll_interval_seconds)
|
|
logger.info("compute poller started", extra={"interval_seconds": interval})
|
|
while True:
|
|
try:
|
|
result = await poll_compute_jobs_once()
|
|
if result["failed"]:
|
|
logger.warning("compute polling reported failures", extra={"result": result})
|
|
elif result["synced"]:
|
|
logger.debug("compute jobs synchronized", extra={"result": result})
|
|
except asyncio.CancelledError:
|
|
logger.info("compute poller stopped")
|
|
raise
|
|
except Exception as exc: # noqa: BLE001 - keep background polling alive
|
|
logger.exception("compute poller failed", extra={"error": str(exc)})
|
|
await asyncio.sleep(interval)
|