aboutsummaryrefslogtreecommitdiffstats
path: root/drive/errors.go
diff options
context:
space:
mode:
Diffstat (limited to 'drive/errors.go')
-rw-r--r--drive/errors.go22
1 files changed, 22 insertions, 0 deletions
diff --git a/drive/errors.go b/drive/errors.go
new file mode 100644
index 0000000..703dae5
--- /dev/null
+++ b/drive/errors.go
@@ -0,0 +1,22 @@
+package drive
+
+import (
+ "google.golang.org/api/googleapi"
+ "time"
+)
+
+const MaxBackendErrorRetries = 5
+
+func isBackendError(err error) bool {
+ if err == nil {
+ return false
+ }
+
+ ae, ok := err.(*googleapi.Error)
+ return ok && ae.Code >= 500 && ae.Code <= 599
+}
+
+func exponentialBackoffSleep(try int) {
+ seconds := pow(2, try)
+ time.Sleep(time.Duration(seconds) * time.Second)
+}