feat: 异步任务队列架构 - SQLite队列 + 速率限制 + NAS Poller
Edge端: - 新增 SQLite 异步任务队列 (queue_manager + consumer) - 新增 TokenBucket 速率限制器 (Gemini 1000 RPM, NVIDIA 40 RPM, burst 2x) - 新增 /api/edge/video/enqueue + /api/edge/results 端点 - 消费者线程从队列消费任务,按速率限制调用AI模型 - orchestrator 集成 rate_limiter,Gemini优先→NVIDIA兜底 NAS端: - Dispatcher 重构为 enqueue 模式(上传后立即返回,不等结果) - 新增 Poller 线程(定期从Edge拉取结果写 MariaDB) - app.py 启动 Poller,config.yaml 新增 poller 配置 - db_layer 更新 valid_stages 添加 'process'
This commit is contained in:
@@ -1,7 +1,12 @@
|
||||
# FAM-Edge 配置文件 (Oracle 端) - 多模型池配置
|
||||
# Tailscale: Oracle=100.74.137.126, NAS=100.70.234.39
|
||||
#
|
||||
# 异步队列模式:
|
||||
# NAS 上传视频 → /api/edge/video/enqueue 入 SQLite 队列 → 消费者线程异步处理
|
||||
# → NAS Poller 从 /api/edge/results 拉取结果
|
||||
# 速率限制: Gemini 1000RPM x2 burst, NVIDIA 40RPM x2 burst
|
||||
|
||||
# NAS 端回调地址
|
||||
# NAS 端回调地址(旧 webhook 模式保留,异步模式不使用)
|
||||
nas:
|
||||
webhook_url: "http://100.70.234.39:8000/api/core/callback/event"
|
||||
media_base_url: "http://100.70.234.39:8000/media"
|
||||
@@ -13,6 +18,17 @@ server:
|
||||
port: 5000
|
||||
max_concurrent_tasks: 1
|
||||
|
||||
# 异步任务队列
|
||||
queue:
|
||||
db_path: "/opt/fam-edge/data/fam_queue.db"
|
||||
upload_dir: "/tmp/fam_uploads"
|
||||
poll_interval: 10 # 消费者轮询间隔(秒)
|
||||
# API 速率限制 (RPM),burst_factor=2 表示突发容量为 2 倍 RPM
|
||||
rate_limit:
|
||||
gemini_rpm: 1000
|
||||
nvidia_rpm: 40
|
||||
burst_factor: 2
|
||||
|
||||
# 编排调度模式: fallback(顺序降级, 默认) | ensemble(并行交叉验证)
|
||||
orchestrator:
|
||||
mode: "fallback"
|
||||
|
||||
Reference in New Issue
Block a user