# 推荐系统日志和运行状态检查 ## 问题描述 1. **感觉没有推荐了**:推荐系统可能没有正常运行 2. **recommendations_bot.log 是不是没用了**:需要确认日志文件位置 3. **推荐系统输出的日志在哪**:需要确认日志路径 4. **recommendations-viewer 需要调整吗**:需要检查前端是否需要调整 --- ## 推荐系统日志配置 ### 1. 日志文件位置 **代码位置**:`trading_system/recommendations_main.py` **日志文件**: - 默认:`recommendations_bot.log`(项目根目录) - 可通过环境变量 `RECOMMEND_LOG_FILE` 覆盖 **日志输出**: 1. **文件日志**:`recommendations_bot.log`(项目根目录) 2. **控制台输出**:stdout(如果通过supervisor运行,会被supervisor捕获) 3. **Redis日志**:写入Redis(用于前端日志监控,service="recommendations") ### 2. Supervisor配置 **当前情况**: - `supervisor_account.py` 只处理交易账户的配置(`auto_sys_acc1`, `auto_sys_acc2`等) - **推荐服务没有自动生成supervisor配置** **推荐服务可能的运行方式**: 1. **手动运行**:`python -m trading_system.recommendations_main` 2. **Supervisor手动配置**:需要手动创建supervisor配置文件 3. **未运行**:推荐服务可能没有启动 --- ## 检查推荐系统运行状态 ### 1. 检查进程 ```bash # 检查推荐服务进程 ps aux | grep recommendations_main # 检查supervisor管理的推荐服务 supervisorctl status | grep recommend ``` ### 2. 检查日志文件 ```bash # 检查项目根目录的日志文件 ls -lh /www/wwwroot/autosys_new/recommendations_bot.log # 查看日志内容 tail -f /www/wwwroot/autosys_new/recommendations_bot.log # 检查supervisor日志(如果通过supervisor运行) # 需要找到推荐服务的supervisor配置,查看stdout_logfile和stderr_logfile ``` ### 3. 检查Redis中的推荐数据 ```bash # 检查Redis中的推荐数据 redis-cli > KEYS recommendations:* > GET recommendations:snapshot > HGETALL recommendations:realtime ``` ### 4. 检查API接口 ```bash # 检查推荐API是否返回数据 curl http://asapi.deepx1.com/api/recommendations?type=realtime ``` --- ## 推荐系统配置 ### 1. 环境变量 推荐系统支持以下环境变量: - `RECOMMEND_SCAN_INTERVAL_SEC`:扫描间隔(默认60秒) - `RECOMMEND_MIN_SIGNAL_STRENGTH`:最小信号强度(默认5) - `RECOMMEND_MAX_RECOMMENDATIONS`:最大推荐数量(默认60) - `RECOMMEND_MIN_QUALITY_SCORE`:最小质量分数(默认0.0) - `RECOMMEND_SCAN_CACHE_NAMESPACE`:缓存命名空间(默认"recommend") - `RECOMMEND_LOG_FILE`:日志文件路径(默认"recommendations_bot.log") ### 2. Supervisor配置(如果需要) 如果需要通过supervisor管理推荐服务,需要手动创建配置文件: ```ini [program:auto_recommend] directory=/www/wwwroot/autosys_new command=/www/wwwroot/autosys_new/trading_system/.venv/bin/python -m trading_system.recommendations_main autostart=true autorestart=unexpected exitcodes=0,2 startsecs=0 stopasgroup=true killasgroup=true stopsignal=TERM environment=PYTHONUNBUFFERED="1",PYTHONPATH="/www/wwwroot/autosys_new" stdout_logfile=/www/wwwroot/autosys_new/logs/recommendations.out.log stderr_logfile=/www/wwwroot/autosys_new/logs/recommendations.err.log stdout_logfile_maxbytes=20MB stdout_logfile_backups=5 stderr_logfile_maxbytes=20MB stderr_logfile_backups=5 ``` --- ## recommendations-viewer 检查 ### 1. API接口 **文件**:`recommendations-viewer/src/services/api.js` **接口**:`/api/recommendations?type=realtime` **检查**: - API接口是否正确 - 是否返回数据 - 前端是否能正常显示 ### 2. 是否需要调整 **当前实现**: - 每10秒静默更新价格 - 使用实时推荐(type=realtime) - 从Redis读取推荐数据 **如果推荐系统没有运行**: - 前端会显示"没有推荐"或"加载失败" - 需要确保推荐服务正常运行 --- ## 解决方案 ### 方案1:检查推荐服务是否运行 ```bash # 1. 检查进程 ps aux | grep recommendations_main # 2. 如果没有运行,手动启动 cd /www/wwwroot/autosys_new source trading_system/.venv/bin/activate python -m trading_system.recommendations_main # 3. 或者通过supervisor启动(如果已配置) supervisorctl start auto_recommend ``` ### 方案2:检查日志文件 ```bash # 1. 检查日志文件是否存在 ls -lh /www/wwwroot/autosys_new/recommendations_bot.log # 2. 查看日志内容 tail -f /www/wwwroot/autosys_new/recommendations_bot.log # 3. 如果日志文件不存在,可能是: # - 推荐服务没有运行 # - 日志文件路径配置错误 # - 权限问题 ``` ### 方案3:检查Redis数据 ```bash # 1. 连接Redis redis-cli # 2. 检查推荐数据 KEYS recommendations:* GET recommendations:snapshot HGETALL recommendations:realtime # 3. 如果没有数据,说明推荐服务没有生成推荐 ``` ### 方案4:检查API接口 ```bash # 1. 检查API是否返回数据 curl http://asapi.deepx1.com/api/recommendations?type=realtime # 2. 如果返回空数组,说明: # - 推荐服务没有运行 # - 推荐服务运行但没有生成推荐 # - Redis中没有推荐数据 ``` --- ## 推荐系统日志位置总结 ### 1. 文件日志 - **位置**:`/www/wwwroot/autosys_new/recommendations_bot.log` - **说明**:如果推荐服务运行,日志会写入这个文件 ### 2. Supervisor日志(如果通过supervisor运行) - **位置**:根据supervisor配置的 `stdout_logfile` 和 `stderr_logfile` - **说明**:如果推荐服务通过supervisor运行,日志会写入supervisor配置的日志文件 ### 3. Redis日志 - **位置**:Redis(service="recommendations") - **说明**:用于前端日志监控 --- ## 下一步操作 1. **检查推荐服务是否运行**: ```bash ps aux | grep recommendations_main ``` 2. **检查日志文件**: ```bash tail -f /www/wwwroot/autosys_new/recommendations_bot.log ``` 3. **检查Redis数据**: ```bash redis-cli > KEYS recommendations:* ``` 4. **检查API接口**: ```bash curl http://asapi.deepx1.com/api/recommendations?type=realtime ``` 5. **如果推荐服务没有运行,启动它**: ```bash # 手动启动 python -m trading_system.recommendations_main # 或通过supervisor启动(如果已配置) supervisorctl start auto_recommend ``` --- ## recommendations-viewer 是否需要调整 **当前情况**: - 前端代码看起来正常 - 如果推荐系统正常运行,前端应该能正常显示推荐 **如果需要调整**: - 检查API接口是否正确 - 检查前端是否能正常获取数据 - 检查前端显示逻辑是否正确 **建议**: - 先确保推荐服务正常运行 - 然后检查前端是否能正常显示推荐 - 如果前端有问题,再进行调整