mirror of
https://github.com/shadowsocks/ShadowsocksX-NG.git
synced 2026-11-08 13:44:51 +00:00
* feat: add GUI-scoped subscription automatic updates * fix: drain newly due subscription updates during a batch * style: use segmented subscription update pickers
1.6 KiB
1.6 KiB
订阅自动更新由 GUI 应用运行期间执行
订阅自动更新由 GUI 应用负责,仅保留菜单栏或静默启动时也执行;不交由生命周期独立的后台代理服务执行,也不为更新唤醒电脑。应用重新启动或电脑唤醒时,已到期订阅只补更新一次,以满足 GUI 存活边界并避免追赶多个错过周期。
供应商可提供关闭、每天或每周的设置,并决定是否允许用户覆盖;禁止覆盖时供应商设置生效,允许覆盖时用户可显式覆盖或恢复跟随供应商。供应商未提供配置时默认关闭,默认间隔为每天;供应商要求开启时,首次成功获取该配置即可启用,无需用户再次开启。
供应商策略与用户覆盖分别保存。供应商暂时禁止覆盖时保留用户选择,重新允许覆盖后恢复;成功响应缺失策略视为撤回,格式错误或更新失败则保留上次有效策略。修改订阅 URL 时清除旧供应商策略、保留用户选择,避免把旧地址的约束施加到新地址。
在现有 x_shadowsocksx_ng、schema_version: 1 中增加可选 auto_update 对象;自动更新策略与分组树独立解析,避免一个扩展功能的错误破坏另一个功能。
每天、每周分别表示本次更新结束后 24 小时、7 天,再加入基础间隔 0~10% 的随机延后。手动和自动更新无论成功或失败,都重新安排下一次,不额外短时重试;关闭时不产生自动计划。下次计划时间持久保存,重启不重新抽取抖动;最后更新时间仍仅表示最后成功更新。