#!/bin/bash # systemd 调度的入口(专跑 tick_trade) # # 设计: # - 比 market_sync_run.sh 简单:只跑一个 task (tick_trade) # - 21:00 门控由 task 内部处理;systemd 触发时间 21:05 留 5min buffer # - CLI 加 --force 跳过 21:00 门控(systemd 触发时已是 21:05+,force 不会真正"跳过" # 任何东西,但保持与 runall_once 同步任务的 force 语义一致) # - 单独日志到 logs/tick_.log # - exit code 透传(systemd 据此判成功 / 失败) set -u PROJECT_ROOT="/home/gao/Development/quant_home/market_sync" LOG_DIR="$PROJECT_ROOT/logs" mkdir -p "$LOG_DIR" TS=$(date +%Y%m%d_%H%M%S) LOG="$LOG_DIR/tick_${TS}.log" echo "[market-sync-tick] start ts=$TS log=$LOG" | tee -a "$LOG" # 注:不做法定节假日过滤 —— 与 market_sync_run.sh 同样的 fail-open 原则。 # 大不了非交易日 mairui 返回空 → task 报 warning,不丢历史。 # ── 跑 tick_trade(force=True 跳过 21:00 门控,因为 systemd 触发时间 21:05 已过门控)── cd "$PROJECT_ROOT" .venv/bin/python -m app.entrypoints.cli sync tick_trade --force 2>&1 | tee -a "$LOG" EXIT_CODE=${PIPESTATUS[0]} echo "[market-sync-tick] done exit_code=$EXIT_CODE" | tee -a "$LOG" exit $EXIT_CODE