4.5 KiB
4.5 KiB
任务队列功能使用说明
📋 功能概述
新增了任务队列系统,支持离线处理、进度跟踪和结果汇总导出。
🚀 启动服务
# 开发环境
python app.py
# 生产环境(推荐)
bash start.sh
启动时会自动:
- ✅ 创建必要的目录(data/, data/results/)
- ✅ 启动后台任务处理器
- ✅ 自动处理队列中的任务
💡 使用方式
方式1:即时导出(原有功能)
- 填写百家号URL和参数
- 点击**"即时导出"**按钮
- 同步等待处理完成
- 立即下载结果
适用场景: 需要立即获取结果
方式2:队列处理(新功能)⭐
- 填写百家号URL和参数
- 点击**"添加到队列"**按钮
- 任务加入队列,后台慢慢处理
- 可以继续添加其他任务
- 在"任务队列"页面查看进度
- 完成后下载结果
适用场景:
- 批量处理多个账号
- 不需要立即获取结果
- 避免长时间等待阻塞
📊 任务队列管理页面
点击顶部的**"任务队列"**按钮进入管理页面,可以:
1. 查看统计信息
- 总任务数
- 等待中任务数
- 处理中任务数
- 已完成任务数
- 失败任务数
2. 筛选任务
- 全部任务
- 等待中
- 处理中
- 已完成
- 失败
3. 查看任务详情
每个任务显示:
- 百家号URL
- 任务状态
- 处理进度(0-100%)
- 当前步骤说明
- 时间范围
- 创建时间
- 文章总数
- 是否使用代理
4. 下载结果
- 已完成的任务显示"下载结果"按钮
- 点击即可下载Excel文件
5. 自动刷新
- 页面每5秒自动刷新一次
- 实时查看最新进度
🗂️ 数据存储
任务队列文件
data/task_queue.json
存储所有任务的状态、进度、配置等信息
导出结果文件
data/results/百家号文章_{app_id}_{timestamp}.xlsx
每个任务的Excel结果文件
📝 任务处理流程
用户添加任务
↓
加入队列(pending)
↓
后台处理器检测到任务
↓
标记为处理中(processing)
↓
步骤1: 解析URL获取UK (10%)
↓
步骤2: 初始化爬虫 (20%)
↓
步骤3: 获取文章列表 (30%)
↓
步骤4: 处理文章数据 (50%-90%)
↓
步骤5: 生成Excel文件 (90%)
↓
标记为已完成(completed)
↓
用户下载结果
🔄 任务状态说明
| 状态 | 说明 | 颜色标识 |
|---|---|---|
| pending | 等待处理 | 黄色 |
| processing | 正在处理 | 蓝色 |
| completed | 处理完成 | 绿色 |
| failed | 处理失败 | 红色 |
⚙️ 技术特性
1. 离线处理
- ✅ 添加任务后无需等待
- ✅ 后台自动处理
- ✅ 支持批量添加
2. 进度跟踪
- ✅ 实时显示进度百分比
- ✅ 显示当前处理步骤
- ✅ 显示已处理文章数
3. 错误处理
- ✅ 失败任务显示错误信息
- ✅ 代理失败自动切换IP
- ✅ 反爬检测自动重试
4. 数据持久化
- ✅ 任务状态保存到本地JSON
- ✅ 服务重启后继续处理
- ✅ 结果文件永久保存
5. 用户隔离
- ✅ 每个用户只能看到自己的任务
- ✅ 统计信息按用户过滤
- ✅ 下载权限校验
🎯 最佳实践
-
大批量采集
- 使用"添加到队列"
- 一次性添加多个账号
- 让系统慢慢处理
-
紧急需求
- 使用"即时导出"
- 实时获取结果
-
代理配置
- 默认启用代理IP池
- 系统自动处理反爬
- 检测到反爬立即切换IP
-
定期清理
- 系统会保留7天内的已完成任务
- 可手动删除旧任务(功能可扩展)
🐛 常见问题
Q: 任务一直处于"等待中"状态? A: 检查后台处理器是否启动,查看控制台日志
Q: 任务失败了怎么办? A: 查看失败原因,修改参数后重新添加任务
Q: 可以同时处理多少个任务? A: 目前每次处理1个任务,按队列顺序依次处理
Q: 结果文件在哪里?
A: data/results/ 目录下,文件名包含app_id和时间戳
🔧 开发说明
核心文件
task_queue.py- 任务队列管理task_worker.py- 后台处理器templates/queue.html- 队列管理页面data/task_queue.json- 任务数据存储
API接口
POST /api/queue/add- 添加任务GET /api/queue/tasks- 获取任务列表GET /api/queue/task/<id>- 获取任务详情GET /api/queue/stats- 获取统计信息GET /api/queue/download/<id>- 下载结果
享受高效的批量处理! 🎉