mofin_collect: 采集链脚本,盘前午后cron已就绪
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env python3
|
||||
"""mofin_collect.py — MoFin 数据采集链
|
||||
|
||||
每轮盯盘 cron 前运行,顺序执行:
|
||||
1. market_watch — 拉90个行业板块数据
|
||||
2. trend_detector — 检测17种信号
|
||||
3. xiaoguo_news_processor — 搜新闻+小果分析
|
||||
"""
|
||||
|
||||
import subprocess, sys, time
|
||||
from pathlib import Path
|
||||
|
||||
BASE = Path(__file__).parent.parent if "hermes" in str(Path(__file__).resolve()) else Path(__file__).parent
|
||||
|
||||
SCRIPTS = [
|
||||
("market_watch.py", 60),
|
||||
("trend_detector.py", 10),
|
||||
("xiaoguo_news_processor.py", 60),
|
||||
]
|
||||
|
||||
for script, timeout in SCRIPTS:
|
||||
path = BASE / script
|
||||
if not path.exists():
|
||||
path = Path("/home/hmo/MoFin") / script
|
||||
print(f"--- {script} ---", flush=True)
|
||||
start = time.time()
|
||||
try:
|
||||
result = subprocess.run(
|
||||
[sys.executable, str(path)],
|
||||
capture_output=True, text=True, timeout=timeout
|
||||
)
|
||||
elapsed = time.time() - start
|
||||
if result.returncode == 0:
|
||||
print(f"OK ({elapsed:.0f}s)", flush=True)
|
||||
if result.stdout.strip():
|
||||
for line in result.stdout.strip().split("\n")[-3:]:
|
||||
print(f" {line}", flush=True)
|
||||
else:
|
||||
print(f"FAIL ({elapsed:.0f}s): {result.stderr[:200]}", flush=True)
|
||||
except subprocess.TimeoutExpired:
|
||||
print(f"TIMEOUT ({timeout}s)", flush=True)
|
||||
except Exception as e:
|
||||
print(f"ERROR: {e}", flush=True)
|
||||
|
||||
print("采集链完成", flush=True)
|
||||
Reference in New Issue
Block a user