fix(baidu_netdisk): retry logic in request (close #5262)

pull/5284/head
Andy Hsu 2023-09-22 16:27:44 +08:00
parent 882112ed1c
commit 106cf720c1
1 changed files with 5 additions and 9 deletions

View File

@ -1,6 +1,7 @@
package baidu_netdisk package baidu_netdisk
import ( import (
"errors"
"fmt" "fmt"
"net/http" "net/http"
"net/url" "net/url"
@ -22,7 +23,7 @@ import (
func (d *BaiduNetdisk) refreshToken() error { func (d *BaiduNetdisk) refreshToken() error {
err := d._refreshToken() err := d._refreshToken()
if err != nil && err == errs.EmptyToken { if err != nil && errors.Is(err, errs.EmptyToken) {
err = d._refreshToken() err = d._refreshToken()
} }
return err return err
@ -74,21 +75,16 @@ func (d *BaiduNetdisk) request(furl string, method string, callback base.ReqCall
log.Info("refreshing baidu_netdisk token.") log.Info("refreshing baidu_netdisk token.")
err2 := d.refreshToken() err2 := d.refreshToken()
if err2 != nil { if err2 != nil {
return err2 return retry.Unrecoverable(err2)
} }
} }
return fmt.Errorf("req: [%s] ,errno: %d, refer to https://pan.baidu.com/union/doc/", furl, errno)
err2 := fmt.Errorf("req: [%s] ,errno: %d, refer to https://pan.baidu.com/union/doc/", furl, errno)
if !utils.SliceContains([]int{2}, errno) {
err2 = retry.Unrecoverable(err2)
}
return err2
} }
result = res.Body() result = res.Body()
return nil return nil
}, },
retry.LastErrorOnly(true), retry.LastErrorOnly(true),
retry.Attempts(5), retry.Attempts(3),
retry.Delay(time.Second), retry.Delay(time.Second),
retry.DelayType(retry.BackOffDelay)) retry.DelayType(retry.BackOffDelay))
return result, err return result, err