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:
JianFeeeee
2026-09-21 10:34:41 +08:00
parent 7587bd82d8
commit d05161ac8d

View File

@ -211,8 +211,10 @@ func (r *Registry) scheduleProcRestart(name string, cause error) {
return
}
// 线性退避1 次→1s2 次→2s3 次→3s。崩溃循环时不至于打满 CPU
// 又足够快到用户感知不到工具缺席
// 线性退避1 次→1s2 次→2s3 次→3s。
// 目的只是崩溃循环时不至于打满 CPU
// 注意这**不是**无感恢复:首次就要等 1s期间该插件的工具是缺席的
// 调用会直接报错。需要秒级就位的插件应在 OnStart 里自建重连与状态重建。
delay := time.Duration(n) * procRestartBackoff
time.Sleep(delay)