Open
Conversation
问题描述: - 任务提交后无法在查询数据库时显示 - 怀疑 Flask 和 Celery Worker 使用了不同的数据库文件 根本原因: - server/app.py 和 server/tasks.py 在不同进程中初始化数据库 - DATA_DIR 依赖 BASE_DIR 计算,而 BASE_DIR 基于 __file__ 路径 - 如果两个进程从不同目录启动,会导致数据库路径不一致 新增文件: 1. DATABASE_DIAGNOSIS.md - 详细的诊断和修复指南 2. check_db_consistency.sh - 自动化诊断脚本 3. debug_db_path.py - Python 诊断工具 4. fix_db_path.sh - 快速修复脚本 解决方案: - 建议设置 CI_DATA_DIR 环境变量为绝对路径 - 确保 Flask 和 Celery Worker 使用相同的环境变量
新增工具: 1. read_db.sh - Shell脚本版本的数据库读取工具 - 自动查找数据库文件 - 显示任务统计、最近任务、运行中任务等 - 格式化输出,易于阅读 2. read_db.py - Python脚本版本的数据库读取工具 - 功能更丰富,输出更美观 - 支持自动查找数据库 - 详细的统计信息和任务详情 3. SQL_QUERIES.md - SQL查询参考文档 - 包含各类常用查询示例 - 基础查询、统计分析、性能分析 - 错误分析、用户活跃度、配额管理 - 数据导出和备份方法 使用方法: - ./read_db.sh [数据库路径] - python3 read_db.py [数据库路径] - 参考 SQL_QUERIES.md 进行自定义查询
修改内容: - 在 database.py 中添加详细的调试日志 - 初始化时打印数据库路径 - create_job() 打印写入详情和验证结果 - update_job_started() 打印更新信息 - update_job_finished() 打印完成状态 - get_jobs() 打印查询详情和结果 新增文件: - DEBUG_WITH_LOGS.md - 日志调试指南 - scan_all_dbs.py - 全面扫描数据库工具 - TROUBLESHOOTING_GUIDE.md - 问题排查指南 这些日志可以帮助追踪: 1. Flask 和 Celery 是否使用相同的数据库路径 2. 数据是否真的写入成功 3. 查询时返回了多少条记录 4. 定位数据不一致的根本原因
新增工具: - debug_database_issue.sh - 一键收集所有诊断信息 - 检查服务状态 - 查看数据库初始化路径 - 显示最近的数据库操作 - 列出所有数据库文件 - 统计数据库内容 - 提供诊断建议 使用方法: ./debug_database_issue.sh
新增文档: - WHERE_ARE_LOGS.md - 详细说明 print 日志在不同场景下的输出位置 - 终端直接运行(最直观) - systemd 服务(journalctl 查看) - supervisor(日志文件) - 后台运行(nohup) - 完整的调试示例 - 故障排除指南 帮助用户理解和查看添加的数据库操作日志
核心改进:
1. database.py 使用 Python logging 模块
- 同时输出到文件和控制台
- 保留 print 用于兼容性
- 结构化的日志格式
2. app.py 配置日志系统
- RotatingFileHandler (10MB轮转,保留5个文件)
- 日志文件: {DATA_DIR}/logs/app.log
- 启动时记录配置信息
3. 新增调试 API (免Token认证):
- GET /api/debug/logs - 查看最近的日志
支持 lines 和 filter 参数
- GET /api/debug/db-info - 数据库信息和操作日志
- GET /api/debug/config - 环境变量和配置信息
4. 新增文档:
- CLIENT_DEBUG_API.md - 客户端API使用指南
- 包含完整的使用示例和调试工作流
现在客户端可以通过 HTTP API 查看所有数据库操作日志,
无需登录服务器!便于定位任务提交和查询问题。
改进内容: 1. Celery Worker 日志配置 - 独立的日志文件: celery_worker.log - RotatingFileHandler (10MB, 5个备份) - 同时输出到控制台和文件 2. 关键位置添加日志: - 任务开始: 记录 task_id, mode, user_id - 任务完成: 记录 status, duration, exit_code - 任务超时: 记录超时信息 - 任务错误: 记录异常信息 3. 更新文档: - CLIENT_DEBUG_API.md 说明 Celery 日志位置 - WHERE_ARE_LOGS.md 更新日志文件说明 现在 Flask 和 Celery Worker 都有完整的日志系统, 方便追踪任务从提交到执行的完整流程。
改进: - /api/debug/logs 新增 source 参数 (flask|celery|all) - 默认 source=all,合并显示两个日志源 - 每行日志前标注来源 [flask] 或 [celery] 使用示例: - curl http://localhost:5000/api/debug/logs (查看所有) - curl http://localhost:5000/api/debug/logs?source=celery (只看Celery) - curl http://localhost:5000/api/debug/logs?filter=数据库 (过滤)
xshii
pushed a commit
that referenced
this pull request
Nov 19, 2025
## 修复内容 ### 1. 修复配额管理页签显示问题 - 修复 main.js 中 showMainTab 函数的 event 参数处理 - 添加正确的标签显示/隐藏逻辑 - 添加 closeUserModal 函数避免运行时错误 ### 2. 创建独立的 adminx 管理页面 - 新增 /adminx 路由,提供独立的配额管理界面 - 免除查询操作的 token 约束,提升用户体验 - 修改操作(添加/编辑/删除特殊用户)仍需 token 保护 ### 3. 新增功能 - 美观的配额使用情况可视化界面 - 实时配额进度条(支持警告和危险状态提示) - 特殊用户管理功能(增删改查) - 智能 token 提示机制 - 自动刷新功能(30秒间隔) ## 技术细节 **修改文件:** - server/app.py: 添加 adminx 路由和模板支持 - server/static/js/main.js: 修复标签切换逻辑 - server/static/js/adminx.js: 新增管理页面 JS 逻辑 - server/templates/adminx.html: 新增独立管理页面模板 **访问方式:** - 主页面: http://localhost:5000/ - 管理页面: http://localhost:5000/adminx(无需 token) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
xshii
added a commit
that referenced
this pull request
Nov 19, 2025
## 修复内容 ### 1. 修复配额管理页签显示问题 - 修复 main.js 中 showMainTab 函数的 event 参数处理 - 添加正确的标签显示/隐藏逻辑 - 添加 closeUserModal 函数避免运行时错误 ### 2. 创建独立的 adminx 管理页面 - 新增 /adminx 路由,提供独立的配额管理界面 - 免除查询操作的 token 约束,提升用户体验 - 修改操作(添加/编辑/删除特殊用户)仍需 token 保护 ### 3. 新增功能 - 美观的配额使用情况可视化界面 - 实时配额进度条(支持警告和危险状态提示) - 特殊用户管理功能(增删改查) - 智能 token 提示机制 - 自动刷新功能(30秒间隔) ## 技术细节 **修改文件:** - server/app.py: 添加 adminx 路由和模板支持 - server/static/js/main.js: 修复标签切换逻辑 - server/static/js/adminx.js: 新增管理页面 JS 逻辑 - server/templates/adminx.html: 新增独立管理页面模板 **访问方式:** - 主页面: http://localhost:5000/ - 管理页面: http://localhost:5000/adminx(无需 token) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: gakki <gakki@gakkis-MacBook-Pro.local> Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
问题描述:
根本原因:
新增文件:
解决方案: