uid := util.UUIDPretty()
err := retry.Do(
func() error {
return os.RemoveAll(userDataDir)
},
retry.Attempts(7),
retry.MaxJitter(10*time.Second), // 最大RandomDelay
retry.Delay(2*time.Second), // 基础间隔
retry.MaxDelay(15*time.Second), // 延迟上限
retry.DelayType(retry.CombineDelay(retry.BackOffDelay, retry.RandomDelay)),
retry.OnRetry(func(attempt uint, err error) {
config.Log.Warnf("%s: remove fetch article browser userDataDir: attempt=%d/7, path=%s: %s", uid, attempt+1, userDataDir, err.Error())
}),
retry.LastErrorOnly(true), // 只返回最后一次错误 否则是 "All attempts fail:\n\#1: err\n\#n...")
if err != nil {
config.Log.Warnf("%s: remove fetch article browser userDataDir failed after try 7 times: path=%s", uid, userDataDir)
}