FluxDown 队列每日计划 — 定时全速、定时暂停
队列 + 每日计划的用法
FluxDown 的命名队列不只是把任务分组——每个队列还有自己的:
- 并发数 — 同时跑多少个任务。
- 每日计划 — 哪段时间自动开、哪段时间自动停。
两者配合可以做非常精细的定时下载策略,而不需要外部 crontab。
怎么设
「设置 → 队列 → 新建队列」或编辑已有队列:
队列名:夜间全速
并发数:16
每日计划:
每天 22:00 — 次日 08:00 自动启动
08:00 — 22:00 自动暂停
全局限速配合:22:00 起全局限速解除、08:00 起限速 30%
保存后队列就按这个日程自动跑——不需要人手动点暂停/恢复。
多队列交叉场景
典型的多队列配合:
| 队列 | 并发 | 每日计划 | 放什么 |
|---|---|---|---|
| Main | 4 | 全天跑 | 日常 HTTP/FTP 下载,不抢带宽 |
| 夜间全速 | 16 | 22:00–08:00 自动 | BT/大文件 ISO/稀有资源——这些不着急下但下得慢 |
| RSS 自动 | 8 | 跟随主队列 | RSS 订阅新条目自动进 |
| 手动 | 不自动(只手动启动) | — | 临时的手动任务 |
22:00 一到,「夜间全速」队列自动解锁、并发升到 16、全局限速同时解除;早上 8 点自动回到低限速低并发,让白天浏览不受影响。
优先级与并发的关系
多个队列同时跑时:
- 每个队列有自己的并发数——队列内任务之间公平竞争。
- 不同队列共享同一个全局令牌桶限速器(见 令牌桶限速)——队列之间不区分优先级抢带宽,全局限速管总量。
- 「Boost / 优先级」是单任务维度的——Boost 一个任务会让它在所在队列里优先被调度,更多工作线程暂时分配给它,但不影响其他队列。
计划调度的实现
FluxDown 的每日计划由 Daemon 层的调度器实现——不依赖桌面端是否打开:
- 计划状态和时间窗口存在 SQLite 的
queues表里。 - Daemon 进程常驻时,每分钟检查一次当前时间和每个队列的计划窗口,自动触发启停。
- 桌面端关掉、Docker Server 常驻、NAS 服务常驻——三种形态都能正常执行每日计划。
边界情况
| 情况 | FluxDown 的处理 |
|---|---|
| 队列在自动暂停前任务还没下完 | 暂停时任务进入暂停状态,计划结束时自动恢复,断点续传从 SQLite 状态继续 |
| 计划时间过了才启动 FluxDown | FluxDown 启动时立即根据当前时间判断哪些队列应该启动、哪些应该暂停,对齐计划 |
| 凌晨跨日(23:00–01:00 这类) | 引擎自动处理跨午夜的时间窗口 |
| 本地时间和计划不一致 | 计划基于 FluxDown 所在机器的系统时间——Docker/NAS 部署时记得设对 TZ 环境变量 |
和外部调度器的关系
| 方案 | 适用场景 |
|---|---|
| FluxDown 内置每日计划 | 下载相关的简单定时启停——直接在 FluxDown 里设就好 |
| crontab / systemd timer | 需要跨应用调度(比如先 mount 磁盘再启动下载)——用 CLI + cron 配合 |
| Home Assistant | 和其他智能家居场景联动(比如「到家后把队列限速解除」)——用 Webhook 反向触发 |
大多数日常场景内置每日计划足够了——不需要再外面套一层调度器。