背景
当前签到与余额刷新只由内部调度器在 schedule.checkin_hours(默认 9/21 点)自动执行,没有对外的触发方式。这带来两个实际不便:
- 部署/重启后积分长时间显示为 0:
credits 初始值 0,只有签到任务调用上游 get-user-resource 后才写入池状态。若在 9 点后、21 点前部署,WebUI / /status 会一直显示 0,直到下一个整点,容易误判为「没积分」。
- 无法即时验证:想确认账号余额是否恢复、硬冷却(402 余额不足,本应签到解冻)能否提前解除,只能干等到下一个签到时点。
补充:仓库自带的 signin.sh / cmd/signin 是独立进程,能签到但只更新 auth 文件,不会回写运行中容器的内存池状态,因此无法用来刷新 /status。
期望
提供一个手动触发入口,语义与调度器到点时执行的 RunCheckinNow() 完全一致(签到 + 余额查询 + 冷却解冻,末尾顺带旅行)。可参考的实现方向(任选其一):
- HTTP 端点:如
POST /admin/checkin,挂在 withAuth 下,复用现有 api_key 鉴权;触发后同步或异步执行,返回简要结果(成功/已签到/失败的账号数)。
- 信号触发:监听
SIGHUP(或自定义信号)执行一次 RunCheckinNow(),无需新增路由。
个人更倾向 HTTP 端点:便于 WebUI/脚本集成,也不与容器信号语义混淆。
备注
- 安全上,端点应走
api_key 鉴权,避免暴露成未授权的高频上游调用入口;建议加最小触发间隔(如 60s)防误刷。
- 如果设计上倾向「不做手动触发」,也欢迎说明理由;至少可考虑在启动时对 credits 未知的账号做一次余额拉取,以缓解第 1 点的误导。
背景
当前签到与余额刷新只由内部调度器在
schedule.checkin_hours(默认 9/21 点)自动执行,没有对外的触发方式。这带来两个实际不便:credits初始值 0,只有签到任务调用上游get-user-resource后才写入池状态。若在 9 点后、21 点前部署,WebUI //status会一直显示 0,直到下一个整点,容易误判为「没积分」。补充:仓库自带的
signin.sh/cmd/signin是独立进程,能签到但只更新 auth 文件,不会回写运行中容器的内存池状态,因此无法用来刷新/status。期望
提供一个手动触发入口,语义与调度器到点时执行的
RunCheckinNow()完全一致(签到 + 余额查询 + 冷却解冻,末尾顺带旅行)。可参考的实现方向(任选其一):POST /admin/checkin,挂在withAuth下,复用现有api_key鉴权;触发后同步或异步执行,返回简要结果(成功/已签到/失败的账号数)。SIGHUP(或自定义信号)执行一次RunCheckinNow(),无需新增路由。个人更倾向 HTTP 端点:便于 WebUI/脚本集成,也不与容器信号语义混淆。
备注
api_key鉴权,避免暴露成未授权的高频上游调用入口;建议加最小触发间隔(如 60s)防误刷。