diff options
Diffstat (limited to 'weed/util/retry.go')
| -rw-r--r-- | weed/util/retry.go | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/weed/util/retry.go b/weed/util/retry.go new file mode 100644 index 000000000..7d6d8da23 --- /dev/null +++ b/weed/util/retry.go @@ -0,0 +1,21 @@ +package util + +import ( + "time" + + "github.com/chrislusf/seaweedfs/weed/glog" +) + +func Retry(name string, waitTimeLimit time.Duration, job func() error) (err error) { + waitTime := time.Second + for waitTime < waitTimeLimit { + err = job() + if err == nil { + break + } + glog.V(1).Infof("retry %s", name) + time.Sleep(waitTime) + waitTime += waitTime / 2 + } + return err +}
\ No newline at end of file |
