Sleep between retries to download from http

Fix #1
This commit is contained in:
Lorenzo Bolla
2021-06-23 13:53:45 +02:00
parent 209b030502
commit de2be9b8ae

View File

@@ -179,6 +179,9 @@ func (downloader *downloaderImpl) DownloadWithChecksum(ctx context.Context, url
var temppath string
maxTries := downloader.maxTries
const delayBase = 1
const delayMultiplier = 2
delay := time.Duration(delayBase * time.Second)
for maxTries > 0 {
temppath, err = downloader.download(req, url, destination, expected, ignoreMismatch)
@@ -188,6 +191,9 @@ func (downloader *downloaderImpl) DownloadWithChecksum(ctx context.Context, url
downloader.progress.Printf("Error downloading %s: %s retrying...\n", url, err)
}
maxTries--
time.Sleep(delay)
// Sleep exponentially at the next retry
delay *= delayMultiplier
} else {
if downloader.progress != nil {
downloader.progress.Printf("Error downloading %s: %s cannot retry...\n", url, err)