mirror of
https://gitcode.com/JianFeeeee/HomeAgent.git
synced 2026-09-22 09:58:06 +00:00
fix(plugin): 退避注释里无实测支撑的「感知不到工具缺席」
`scheduleProcRestart` 的注释写:
线性退避:1 次→1s,2 次→2s,3 次→3s。崩溃循环时不至于打满 CPU,
又足够快到用户感知不到工具缺席。
前半句是事实(退避确实只为防崩溃循环打满 CPU),后半句是主观断言:
首次重启就要等 1s,这 1s 内该插件的工具是缺席的、调用会直接报错。
「用户感知不到」既无实测支撑,也会让读代码的人误以为是无感恢复。
这正是另一处文档(README「崩溃到恢复 <1s」)同源的问题 ——
实测退避为 1s/2s/3s,故 <1s 从未成立(`procRestartBackoff = time.Second`
由 02cc74c 引入,且该提交是 v1.0.0 的祖先)。
改为写明真实代价与插件侧的正确做法(在 OnStart 里自建重连与状态重建),
与 SDK 仓 README 刚补的说明保持一致。
This commit is contained in:
@ -211,8 +211,10 @@ func (r *Registry) scheduleProcRestart(name string, cause error) {
|
||||
return
|
||||
}
|
||||
|
||||
// 线性退避:1 次→1s,2 次→2s,3 次→3s。崩溃循环时不至于打满 CPU,
|
||||
// 又足够快到用户感知不到工具缺席。
|
||||
// 线性退避:1 次→1s,2 次→2s,3 次→3s。
|
||||
// 目的只是崩溃循环时不至于打满 CPU。
|
||||
// 注意这**不是**无感恢复:首次就要等 1s,期间该插件的工具是缺席的,
|
||||
// 调用会直接报错。需要秒级就位的插件应在 OnStart 里自建重连与状态重建。
|
||||
delay := time.Duration(n) * procRestartBackoff
|
||||
time.Sleep(delay)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user