Files
ai_baijiahao/QUEUE_USAGE.md

4.5 KiB
Raw Blame History

任务队列功能使用说明

📋 功能概述

新增了任务队列系统,支持离线处理进度跟踪结果汇总导出

🚀 启动服务

# 开发环境
python app.py

# 生产环境(推荐)
bash start.sh

启动时会自动:

  • 创建必要的目录data/, data/results/
  • 启动后台任务处理器
  • 自动处理队列中的任务

💡 使用方式

方式1即时导出原有功能

  1. 填写百家号URL和参数
  2. 点击**"即时导出"**按钮
  3. 同步等待处理完成
  4. 立即下载结果

适用场景: 需要立即获取结果


方式2队列处理新功能

  1. 填写百家号URL和参数
  2. 点击**"添加到队列"**按钮
  3. 任务加入队列,后台慢慢处理
  4. 可以继续添加其他任务
  5. 在"任务队列"页面查看进度
  6. 完成后下载结果

适用场景:

  • 批量处理多个账号
  • 不需要立即获取结果
  • 避免长时间等待阻塞

📊 任务队列管理页面

点击顶部的**"任务队列"**按钮进入管理页面,可以:

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. 用户隔离

  • 每个用户只能看到自己的任务
  • 统计信息按用户过滤
  • 下载权限校验

🎯 最佳实践

  1. 大批量采集

    • 使用"添加到队列"
    • 一次性添加多个账号
    • 让系统慢慢处理
  2. 紧急需求

    • 使用"即时导出"
    • 实时获取结果
  3. 代理配置

    • 默认启用代理IP池
    • 系统自动处理反爬
    • 检测到反爬立即切换IP
  4. 定期清理

    • 系统会保留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> - 下载结果

享受高效的批量处理! 🎉