Release v1.3.1 reliability improvements
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Crypto ATR Signal
|
||||
|
||||
Version: `v1.3.0`
|
||||
Version: `v1.3.1`
|
||||
|
||||
扫描 Binance Futures 交易对,在 4 小时周期识别已收盘 K 线的大阳 / 大阴信号,并通过 FastAPI 网页展示。
|
||||
|
||||
@@ -40,6 +40,13 @@ Version: `v1.3.0`
|
||||
- 页面增加“全部”视图,支持按市场分组或合并排序。
|
||||
- 页面默认视图、市场入口、分组和版本信息可通过 `.env` 控制。
|
||||
|
||||
## v1.3.1 变化
|
||||
|
||||
- Discord 汇总使用当前最新 K 线信号总数,重复扫描不会误报为 0。
|
||||
- 增加扫描进程锁,避免 Cron 任务重叠。
|
||||
- 增加 `/health` 健康检查接口。
|
||||
- TradFi 新部署默认启用实体占比 `0.5` 过滤。
|
||||
|
||||
## 项目结构
|
||||
|
||||
```text
|
||||
@@ -92,6 +99,7 @@ cd /www/wwwroot/crypto-atr-signal
|
||||
python3 -m venv .venv
|
||||
.venv/bin/pip install -r requirements.txt
|
||||
cp .env.example .env
|
||||
chmod 600 .env
|
||||
```
|
||||
|
||||
## 配置
|
||||
@@ -104,7 +112,7 @@ CRYPTO_MIN_BODY_RATIO=0.5
|
||||
|
||||
TRADFI_ATR_LENGTH=14
|
||||
TRADFI_ATR_MULTIPLE=1.5
|
||||
TRADFI_BODY_RATIO_FILTER_ENABLED=false
|
||||
TRADFI_BODY_RATIO_FILTER_ENABLED=true
|
||||
TRADFI_MIN_BODY_RATIO=0.5
|
||||
|
||||
DISCORD_ENABLED=false
|
||||
@@ -117,6 +125,9 @@ PAGE_SHOW_TRADFI=true
|
||||
PAGE_GROUP_BY_MARKET=true
|
||||
PAGE_SHOW_VERSION=true
|
||||
|
||||
SCAN_LOCK_PATH=data/scanner.lock
|
||||
HEALTH_MAX_SCAN_AGE_HOURS=8
|
||||
|
||||
INIT_KLINES_LIMIT=40
|
||||
CONCURRENCY=10
|
||||
MAX_RETRIES=3
|
||||
@@ -207,6 +218,77 @@ sudo systemctl start crypto-atr-signal
|
||||
sudo systemctl status crypto-atr-signal
|
||||
```
|
||||
|
||||
## Nginx 反向代理
|
||||
|
||||
FastAPI 只监听 `127.0.0.1:8000`,公网访问交给 Nginx:
|
||||
|
||||
```nginx
|
||||
server {
|
||||
listen 80;
|
||||
server_name signal.example.com;
|
||||
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:8000;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
修改域名后执行:
|
||||
|
||||
```bash
|
||||
sudo nginx -t
|
||||
sudo systemctl reload nginx
|
||||
```
|
||||
|
||||
生产环境建议为域名配置 HTTPS;如果页面只供客户使用,可在 Nginx 增加访问认证。
|
||||
|
||||
## 健康检查
|
||||
|
||||
```bash
|
||||
curl http://127.0.0.1:8000/health
|
||||
```
|
||||
|
||||
数据库正常、Crypto 与 TradFi 最近一次扫描成功且未超过 `HEALTH_MAX_SCAN_AGE_HOURS` 时返回 HTTP `200`。数据库异常、扫描失败或超时未运行时返回 HTTP `503`,可直接接入宝塔或 Uptime Kuma。
|
||||
|
||||
## 数据库备份与恢复
|
||||
|
||||
使用 SQLite 自带的在线备份命令,不需要停止网页服务:
|
||||
|
||||
```bash
|
||||
cd /www/wwwroot/crypto-atr-signal
|
||||
mkdir -p backups
|
||||
sqlite3 data/app.db ".backup 'backups/app-$(date +%F-%H%M).db'"
|
||||
```
|
||||
|
||||
恢复前先停止网页服务,并确保扫描任务没有运行:
|
||||
|
||||
```bash
|
||||
sudo systemctl stop crypto-atr-signal
|
||||
cp backups/app-YYYY-MM-DD-HHMM.db data/app.db
|
||||
sudo systemctl start crypto-atr-signal
|
||||
```
|
||||
|
||||
## 常见故障排查
|
||||
|
||||
```bash
|
||||
# 查看网页服务状态和最近日志
|
||||
sudo systemctl status crypto-atr-signal
|
||||
sudo journalctl -u crypto-atr-signal -n 100 --no-pager
|
||||
|
||||
# 手动执行一轮聚合扫描
|
||||
cd /www/wwwroot/crypto-atr-signal
|
||||
.venv/bin/python scanner.py --market all
|
||||
|
||||
# 检查网页和数据库健康状态
|
||||
curl -i http://127.0.0.1:8000/health
|
||||
```
|
||||
|
||||
如果日志出现 `another scanner process is already running`,说明上一轮尚未结束,本轮已被进程锁安全跳过,无需手动删除锁文件。
|
||||
|
||||
## 页面功能
|
||||
|
||||
- Crypto / TradFi 市场切换
|
||||
@@ -238,7 +320,7 @@ PRAGMA journal_mode = WAL;
|
||||
|
||||
- FastAPI 常驻
|
||||
- SQLite
|
||||
- cron 每 4 小时分别扫描 Crypto 和 TradFi
|
||||
- cron 每 4 小时聚合扫描 Crypto 和 TradFi
|
||||
- Nginx 反向代理
|
||||
|
||||
建议:
|
||||
|
||||
Reference in New Issue
Block a user