@@ -43,17 +43,17 @@ export class WebRequestOptions {
4343export 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