chore: baseline — ORM migration + systemd deploy + MCP server + daily check
- ORM migration: models/ops 重构 - deploy: 标准化 systemd timer/service 部署体系 - MCP server: 5 个只读工具(任务/状态/数据集) - daily check: 数据一致性巡检 - watch: task_watch 后台监控 - kline_daily: 麦蕊优先,时间门禁15:00 - 删除: task_industry_sector, task_sector_features
This commit is contained in:
@@ -30,7 +30,15 @@ def start_scheduler_thread() -> None:
|
||||
给 service_run.sh 用:在 uvicorn 同进程跑后台 scheduler,避免
|
||||
docker 一个容器跑两个进程(supervisord / s6 那种方案)。
|
||||
幂等:多次调用只启动一次。
|
||||
|
||||
2026-07-12: 增加 RUNTIME_MODE 感知。systemd 模式下不启动 scheduler,
|
||||
因为同步由 systemd timer 触发,避免双调度器重叠。
|
||||
"""
|
||||
logger.info(f"[worker] runtime_mode={settings.runtime_mode}")
|
||||
if settings.runtime_mode == "systemd":
|
||||
logger.info("[worker] systemd 模式:不启动进程内 scheduler,同步由 systemd timer 触发")
|
||||
return
|
||||
|
||||
# 1. 注册数据源 + seed config
|
||||
from app.core.datasource.registry import (
|
||||
build_default_registry,
|
||||
@@ -74,6 +82,22 @@ def start_scheduler_thread() -> None:
|
||||
|
||||
def main():
|
||||
logger.info("[worker] market_data_sync worker 启动")
|
||||
logger.info(f"[worker] runtime_mode={settings.runtime_mode}")
|
||||
|
||||
if settings.runtime_mode == "systemd":
|
||||
logger.info("[worker] systemd 模式:不启动进程内 scheduler,同步由 systemd timer 触发")
|
||||
logger.info("[worker] 仅启动健康监控(数据源心跳),按 Ctrl+C 退出")
|
||||
from app.core.datasource.registry import build_default_registry, seed_datasource_configs, start_health_monitor
|
||||
build_default_registry()
|
||||
seed_datasource_configs()
|
||||
start_health_monitor()
|
||||
try:
|
||||
while True:
|
||||
time.sleep(60)
|
||||
except KeyboardInterrupt:
|
||||
logger.info("[worker] 收到 SIGINT,退出")
|
||||
sys.exit(0)
|
||||
return
|
||||
|
||||
# 1. 注册数据源 + seed config
|
||||
from app.core.datasource.registry import build_default_registry, seed_datasource_configs
|
||||
|
||||
Reference in New Issue
Block a user