背景
有些账号的额度/窗口刷新时间需要通过真实上游请求触发更新。希望新增一个可选的自动续期/keepalive 功能:开启后,代理按配置定时为账号发送一条极小请求,用于刷新账号的额度时间状态。
需求
- 新增全局开关,默认关闭。
- 开启后,对可用账号按计划自动发送一次轻量请求:
仅回答1+1=?。
- 默认固定时间点:每天 07:00、13:00、18:00(使用服务器本地时区,文档需说明)。
- 支持两种调度模式:
- 固定时间点:用户可配置多个 HH:mm 时间点。
- 间隔模式:用户可配置首次执行时间和后续间隔。
- 支持配置:
- 是否启用。
- 首次执行时间。
- 固定时间点列表。
- 间隔时间。
- 每次批量执行的并发数/节流间隔,避免所有账号同时打上游。
- 每个账号独立执行,不应因为某个账号失败阻塞其它账号。
- 跳过不可用账号:disabled / expired / banned / refresh 中 / 无有效 token 等。
- 发送请求应走现有 Codex 请求路径和账号状态更新逻辑,使 quota / rate limit / error handling 与正常请求一致。
- Dashboard 需要能查看和配置该功能;最少需要展示开关、模式、时间点/间隔、最近执行时间、下一次执行时间、最近执行结果。
默认行为
account_keepalive:
enabled: false
mode: fixed_times
fixed_times:
- "07:00"
- "13:00"
- "18:00"
first_run_time: "07:00"
interval_minutes: null
concurrency: 2
per_account_delay_ms: 1000
prompt: "仅回答1+1=?"
验收标准
- 配置 schema 和本地配置 overlay 均支持该功能。
- Scheduler 单测覆盖:固定时间点、间隔模式、跨天、禁用状态、账号过滤、并发/节流、单账号失败不影响其它账号。
- 请求路径测试覆盖:keepalive 请求能复用现有账号池和 quota 更新逻辑。
- Dashboard 测试覆盖关键控件和状态展示。
- 文档说明默认时间使用服务器本地时区,以及该功能会消耗真实上游请求。
背景
有些账号的额度/窗口刷新时间需要通过真实上游请求触发更新。希望新增一个可选的自动续期/keepalive 功能:开启后,代理按配置定时为账号发送一条极小请求,用于刷新账号的额度时间状态。
需求
仅回答1+1=?。默认行为
验收标准