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,7 @@
|
||||
# FAM-Core 配置文件 (NAS 端) - 实际部署配置
|
||||
# 注: Tailscale 防火墙待修复,当前 edge_url 使用 Oracle 公网 IP
|
||||
# 推送模式: NAS 上传视频到 Edge /api/edge/video/push,结果同步随响应返回,
|
||||
# 无需 Oracle 反向访问 NAS(webhook/Video-Server 拉取均不再使用)
|
||||
# 异步队列模式: NAS 上传视频到 Edge /api/edge/video/enqueue 入队 → Edge 消费者异步处理
|
||||
# → NAS Poller 定期从 /api/edge/results 拉取结果写库
|
||||
# Ollama 未对外暴露,chat_handler 通过 FAM-Edge 代理
|
||||
|
||||
server:
|
||||
@@ -27,9 +27,16 @@ scheduler:
|
||||
|
||||
dispatcher:
|
||||
poll_interval: 30
|
||||
edge_url: "http://129.146.203.203:5000/api/edge/video/push"
|
||||
edge_url: "http://129.146.203.203:5000/api/edge/video/enqueue"
|
||||
max_retries: 3
|
||||
push_timeout: 1800
|
||||
upload_timeout: 300 # 仅视频上传时间(不含 AI 处理)
|
||||
stale_timeout: 3600 # PROCESSING 超时回收(Edge 处理 + 队列等待)
|
||||
|
||||
poller:
|
||||
poll_interval: 30
|
||||
results_url: "http://129.146.203.203:5000/api/edge/results"
|
||||
batch_size: 10
|
||||
timeout: 30
|
||||
|
||||
video_server:
|
||||
base_url: "http://127.0.0.1:8000/media"
|
||||
|
||||
Reference in New Issue
Block a user