8f016f25df
- 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
60 lines
2.0 KiB
Bash
Executable File
60 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# 部署 market-sync systemd units 到 /etc/systemd/system/
|
|
# 2026-07-09 新增: market-sync-worker.service(长驻进程, 调度 schedule_* 任务)
|
|
#
|
|
# 用法: sudo bash bin/deploy_systemd.sh
|
|
#
|
|
# 跑这个脚本会:
|
|
# 1. 复制 bin/systemd/market-sync*.{service,timer} 到 /etc/systemd/system/
|
|
# 2. systemctl daemon-reload
|
|
# 3. enable + start market-sync-worker.service
|
|
# 4. 不动已存在的 .timer (它们都已 enable, 重复 enable 无副作用)
|
|
set -euo pipefail
|
|
|
|
REPO_DIR="$(cd "$(dirname "$0")/.." && pwd)"
|
|
SYSTEMD_SRC="$REPO_DIR/bin/systemd"
|
|
SYSTEMD_DST="/etc/systemd/system"
|
|
|
|
if [ "$(id -u)" -ne 0 ]; then
|
|
echo "❌ 必须用 sudo 跑: sudo bash $0" >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "=== 1. 复制 unit files ==="
|
|
for f in "$SYSTEMD_SRC"/market-sync*.{service,timer}; do
|
|
[ -f "$f" ] || continue
|
|
name="$(basename "$f")"
|
|
cp -v "$f" "$SYSTEMD_DST/$name"
|
|
chmod 644 "$SYSTEMD_DST/$name"
|
|
done
|
|
|
|
echo ""
|
|
echo "=== 2. daemon-reload ==="
|
|
systemctl daemon-reload
|
|
|
|
echo ""
|
|
echo "=== 3. 启用 + 启动 worker 长驻进程(关键!) ==="
|
|
if ! systemctl is-enabled --quiet market-sync-worker.service; then
|
|
systemctl enable market-sync-worker.service
|
|
fi
|
|
# 如果已通过 nohup 启动了, 先 kill 掉避免双跑
|
|
if pgrep -f "app\.entrypoints\.worker" >/dev/null; then
|
|
echo " ⚠️ 检测到手动启动的 worker 进程, 先 kill"
|
|
pkill -TERM -f "app\.entrypoints\.worker" || true
|
|
sleep 2
|
|
pkill -KILL -f "app\.entrypoints\.worker" 2>/dev/null || true
|
|
fi
|
|
systemctl restart market-sync-worker.service
|
|
sleep 2
|
|
systemctl status market-sync-worker.service --no-pager | head -10
|
|
|
|
echo ""
|
|
echo "=== 4. 列出所有 market-sync timer (验证) ==="
|
|
systemctl list-timers market-sync* --no-pager 2>&1 | head -20
|
|
|
|
echo ""
|
|
echo "✅ 部署完成"
|
|
echo " - 长驻 worker: systemctl status market-sync-worker.service"
|
|
echo " - 看任务执行: tail -f logs/worker_manual_*.log (本进程) 或 journalctl -u market-sync-worker -f (systemd 接管后)"
|
|
echo " - 巡检: .venv/bin/python bin/daily_sync_check.py"
|