github.com/ssube/gitlab-ci-multi-runner@v1.2.1-0.20160607142738-b8d1285632e6/commands/helpers/retry_helper.go (about) 1 package helpers 2 3 import ( 4 "github.com/Sirupsen/logrus" 5 "time" 6 ) 7 8 type retryHelper struct { 9 Retry int `long:"retry" description:"How many times to retry upload"` 10 RetryTime time.Duration `long:"retry-time" description:"How long to wait between retries"` 11 } 12 13 func (r *retryHelper) doRetry(handler func() (bool, error)) (err error) { 14 retry, err := handler() 15 for i := 0; retry && i < r.Retry; i++ { 16 // wait one second to retry 17 logrus.Warningln("Retrying...") 18 time.Sleep(r.RetryTime) 19 retry, err = handler() 20 } 21 return 22 }