Increase the sleep time between download retries

This commit is contained in:
Eelco Dolstra 2016-08-30 15:48:24 +02:00
parent 97b1af1cbe
commit 6631a6e1a1
3 changed files with 4 additions and 2 deletions

View file

@ -230,7 +230,7 @@ struct CurlDownloader : public Downloader
} catch (DownloadError & e) {
attempt++;
if (e.error != Transient || attempt >= options.tries) throw;
auto ms = 25 * (1 << (attempt - 1));
auto ms = options.baseRetryTimeMs * (1 << (attempt - 1));
printMsg(lvlError, format("warning: %s; retrying in %d ms") % e.what() % ms);
std::this_thread::sleep_for(std::chrono::milliseconds(ms));
}

View file

@ -14,6 +14,7 @@ struct DownloadOptions
enum { yes, no, automatic } showProgress = yes;
bool head = false;
size_t tries = 1;
unsigned int baseRetryTimeMs = 100;
};
struct DownloadResult

View file

@ -80,7 +80,8 @@ protected:
auto downloader(downloaders.get());
DownloadOptions options;
options.showProgress = DownloadOptions::no;
options.tries = 3;
options.tries = 5;
options.baseRetryTimeMs = 1000;
try {
return downloader->download(cacheUri + "/" + path, options).data;
} catch (DownloadError & e) {