Skip to content

Commit ecf688e

Browse files
retry interval (#7146)
1 parent 0de8986 commit ecf688e

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

Tasks/Common/azure-arm-rest/webClient.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,17 +43,17 @@ export class WebRequestOptions {
4343
export async function sendRequest(request: WebRequest, options?: WebRequestOptions): Promise<WebResponse> {
4444
let i = 0;
4545
let retryCount = options && options.retryCount ? options.retryCount : 5;
46-
let retryIntervalInSeconds = options && options.retryIntervalInSeconds ? options.retryIntervalInSeconds : 5;
46+
let retryIntervalInSeconds = options && options.retryIntervalInSeconds ? options.retryIntervalInSeconds : 2;
4747
let retriableErrorCodes = options && options.retriableErrorCodes ? options.retriableErrorCodes : ["ETIMEDOUT", "ECONNRESET", "ENOTFOUND", "ESOCKETTIMEDOUT", "ECONNREFUSED", "EHOSTUNREACH", "EPIPE", "EA_AGAIN"];
4848
let retriableStatusCodes = options && options.retriableStatusCodes ? options.retriableStatusCodes: [408, 409, 500, 502, 503, 504];
49-
49+
let timeToWait : number = retryIntervalInSeconds;
5050
while (true) {
5151
try {
5252
let response: WebResponse = await sendRequestInternal(request);
5353
if(retriableStatusCodes.indexOf(response.statusCode) != -1 && ++i < retryCount) {
54-
5554
tl.debug(util.format("Encountered a retriable status code: %s. Message: '%s'.", response.statusCode, response.statusMessage));
56-
await sleepFor(retryIntervalInSeconds);
55+
await sleepFor(timeToWait);
56+
timeToWait = timeToWait * retryIntervalInSeconds + retryIntervalInSeconds;
5757
continue;
5858
}
5959

@@ -62,7 +62,8 @@ export async function sendRequest(request: WebRequest, options?: WebRequestOptio
6262
catch (error) {
6363
if (retriableErrorCodes.indexOf(error.code) != -1 && ++i < retryCount) {
6464
tl.debug(util.format("Encountered a retriable error:%s. Message: %s.", error.code, error.message));
65-
await sleepFor(retryIntervalInSeconds);
65+
await sleepFor(timeToWait);
66+
timeToWait = timeToWait * retryIntervalInSeconds + retryIntervalInSeconds;
6667
}
6768
else {
6869
if (error.code) {

0 commit comments

Comments
 (0)