现状
host-agent 起来后所有实例 status=stopped,不主动拉起。desired=running 只表示允许唤醒。闲置如此合理;换镜像 Recreate 会让当时在跑的户看起来像服务被停掉。init() 还把 lastActivity 写成现在,页面出现同一秒「活跃」。
目标
持久化最后一次租户流量时间。升级后按闲置策略推导谁该还开着,限流拉回。不新增影子进程态。
方案要点
meta.json 增加 lastTrafficAt,touch() 节流落盘
init() 读盘,缺失则不返回 last_activity,禁止用现在填
shouldResume = desired==running && lastTrafficAt 存在 && (idle==0 || 仍在窗口内)
- 网关先听,再并发 2 拉起
- shutdown 只杀进程,不改 desired / lastTrafficAt
验收标准
- 无 lastTrafficAt 或用户停止:重启后不拉起
- 有近期流量(或 idle=0):重启后自动拉回
- 流量已过闲置窗口:保持休眠
- 重启后 last_activity 不是宿主苏醒时间
不做什么
不落盘 status,不加 lastProcess/resume/keep_alive,不改 Recreate。
现状
host-agent 起来后所有实例
status=stopped,不主动拉起。desired=running只表示允许唤醒。闲置如此合理;换镜像 Recreate 会让当时在跑的户看起来像服务被停掉。init()还把lastActivity写成现在,页面出现同一秒「活跃」。目标
持久化最后一次租户流量时间。升级后按闲置策略推导谁该还开着,限流拉回。不新增影子进程态。
方案要点
meta.json增加lastTrafficAt,touch()节流落盘init()读盘,缺失则不返回 last_activity,禁止用现在填shouldResume = desired==running && lastTrafficAt 存在 && (idle==0 || 仍在窗口内)验收标准
不做什么
不落盘 status,不加 lastProcess/resume/keep_alive,不改 Recreate。