[Unit] Description=Market Data Full Sync (PostgreSQL, 9 sync tasks end-to-end) Documentation=file:///home/gao/Development/quant_home/market_sync/bin/market_sync_run.sh After=network-online.target Wants=network-online.target [Service] Type=oneshot WorkingDirectory=/home/gao/Development/quant_home/market_sync User=gao Group=gao # 入口脚本(runall_once.py + structured_watch.sh 二合一) ExecStart=/home/gao/Development/quant_home/market_sync/bin/market_sync_run.sh # 硬上限 4h(实际 ~80min + kline_5min 增量 70min, 总 ~2.5h, 留 buffer 给 retry / 慢任务) # 历史 bug(2026-07-02):2h 超时截断,share_snapshot / market_regime 没跑成 # 详见 docs/works/2026-07-03-01-market-sync-timeout.md TimeoutStartSec=14400 # 不要 Restart=(oneshot 失败就让 OnFailure= 发通知,别自动重跑—— # 重跑会撞外部 API 限流窗口,浪费 1.5h) # Restart=no 是 oneshot 默认值 # 日志走 journald(journalctl -u market-sync.service -f) StandardOutput=journal StandardError=journal SyslogIdentifier=market-sync # 环境(不读 /etc/environment,只带这几个;.env 由 runall_once.py 内部 load_dotenv) Environment=PYTHONUNBUFFERED=1 [Install] WantedBy=multi-user.target