linux-web: B/S 架构——采集引擎后台线程 + aiohttp WebSocket 实时推送 + Web 仪表盘 + systemd 部署

This commit is contained in:
lookt
2026-09-15 20:09:46 +08:00
parent 2c72de1dba
commit f6bdc5a983
8 changed files with 633 additions and 0 deletions
+51
View File
@@ -0,0 +1,51 @@
# Linux B/S 部署(linux-web 分支)
架构:Linux 服务器常驻执行「实时抓取 + 分析」(采集引擎每 60s 一轮),
分析事件经 **WebSocket** 实时推送到所有已连接的 Web 仪表盘(浏览器打开即看,无需刷新)。
```
采集引擎 TimelineCollector(后台线程)
├─ 盘前:美股隔夜收盘 → 实证先验(skill)预估今日跳空/日内概率
├─ 盘中:东财7x24快讯入库 → 关键词告警 → 上证实时点位
└─ 盘后:龙虎榜入库 → 收盘日报
│ 事件回调(每条:新快讯/盘中点位/告警/日报…)
aiohttp 服务(端口 8100
├─ GET / Web 仪表盘(深色,事件流实时上屏)
├─ GET /api/recent 最近事件 JSON
├─ GET /api/stats 连接数/缓冲统计
└─ WS /ws 实时广播(断线自动重连)
```
## 部署步骤
```bash
sudo mkdir -p /opt && cd /opt
sudo git clone -b linux-web <仓库地址> a_stock_timeline
cd a_stock_timeline
python3 -m venv venv
venv/bin/pip install -r requirements.txt
sudo cp deploy/a-stock-timeline.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now a-stock-timeline
# 查看实时日志
journalctl -u a-stock-timeline -f
```
浏览器访问 `http://<服务器IP>:8100`(生产建议前置 nginx 做 TLS/域名)。
## 数据说明
- 数据库:`/opt/a_stock_timeline/data/a_stock.db`SQLite,与 C 端同 schema
- 事件流水:`data/realtime_feed.jsonl`(重启后自动回放最近 200 条到新连接的客户端)
- 实证先验:`docs/overnight_transmission.md`(由 windows-desktop 分支的
`src/analysis/mine_patterns.py` 挖掘生成,拷贝到 docs/ 即可被服务端加载)
## 与 C 端(windows-desktop 分支)的关系
- 共享:fetcher/storage/分析引擎与全部实证口径
- 差异:C 端入口为 `start_realtime.bat` + 控制台输出 + Windows 数据路径;
linux-web 端入口为 `python -m src.web.server`,事件走 WebSocket 广播,路径全部相对化