FluxDown 任务 Boost — 临时让一个任务跑快点
为什么需要 Boost
默认情况下 FluxDown 引擎公平对待队列里所有任务——它们共享同一个令牌桶限速器,公平分配并发数。但有时候你会遇到:
- 其他下载都在跑,但有一个紧急文件想先下完。
- 某个小文件卡在队列尾部等了很久。
- RSS 自动订阅下发了一堆任务,其中有一个特别急用。
Boost 按钮就是解决这个问题的——对单个任务临时提升优先级。
Boost 做了什么
点一个任务的「Boost」按钮后,调度器:
- 暂时为这个任务分配更多工作线程——超过它所在队列的正常并发数限制。
- 在全局令牌桶里给它开一个「快速通道」——让它优先取令牌,其他任务让道。
- Boost 效果持续到该任务完成、或你手动取消 Boost、或你暂停/删除该任务。
其他任务不会被取消或暂停——只是暂时让道,Boost 任务跑完后一切恢复正常。
怎么用
- 桌面端 — 任务列表里找到目标任务 → 右键或点更多 → 「Boost 此下载」。Boost 中的任务会有一个闪电图标标识。
- Web UI(Server) — 任务列表 → 操作按钮 → Boost。
- CLI —
fluxdown boost <task-id>。 - API —
POST /api/v1/tasks/<task-id>/boost。
和手动调队列的区别
| 方案 | 影响范围 | 操作量 |
|---|---|---|
| Boost 单任务 | 只影响这一个任务,其他正常 | 点一下按钮 |
| 把它挪到专门的「加急」队列 | 需要先建队列表、改其他任务的队列 | 多步 |
| 暂停其他任务 | 其他任务全停 | 手动一个个暂停 |
| 调全局限速或并发 | 影响所有任务 | 全局改变 |
Boost 是最精准的——只提升一个任务,其他一切不变。
技术细节
Boost 没有绕过统一队列和 SQLite 持久化机制——它只是在调度器内部给这个任务的优先级权重调高,让 Work Stealing 引擎更快地把空闲 worker 分配给它。全局令牌桶仍然生效——Boost 任务可以拿更多带宽,但不会突破总限速(如果你设了)。
为什么不支持多任务同时 Boost
目前一次只能 Boost 一个任务。两个任务同时 Boost 相当于没 Boost——调度器还是公平对待。如果你真有多个紧急任务,建议:
- 把它们挪到一个独立的「加急」队列。
- 给加急队列设更高并发数。
- (可选)暂停其他队列。
这样做比同时 Boost 多个任务效果好。
Webhook + Boost
可以写一个 Hook 插件或 Webhook 自动 Boost 某些任务——比如:
- 标题含「critical」的 RSS 订阅条目自动 Boost。
- API 调用时带参数
"boost": true自动 Boost。