File tree 1 file changed +7
-3
lines changed
1 file changed +7
-3
lines changed Original file line number Diff line number Diff line change @@ -303,7 +303,7 @@ File.prototype.createWriteStream = function(metadata) {
303
303
304
304
var numBytesWritten ;
305
305
var resumableUri ;
306
- var RETRY_LIMIT = 3 ;
306
+ var RETRY_LIMIT = 5 ;
307
307
var retries = 0 ;
308
308
309
309
// This is used to hold all data coming in from the user's readable stream. If
@@ -510,13 +510,17 @@ File.prototype.createWriteStream = function(metadata) {
510
510
return ;
511
511
}
512
512
513
- if ( err . code > 499 && err . code < 600 && retries <= RETRY_LIMIT ) {
513
+ if ( err . code > 499 && err . code < 600 && retries < RETRY_LIMIT ) {
514
+ // Exponential backoff: http://goo.gl/CifIFy
515
+ var randomMs = Math . round ( Math . random ( ) * 1000 ) ;
516
+ var waitTime = Math . pow ( 2 , retries ) * 1000 + randomMs ;
517
+
514
518
retries ++ ;
515
519
516
520
// Reset `numBytesWritten` so we update this value by pinging the API.
517
521
numBytesWritten = null ;
518
522
519
- resumeUpload ( ) ;
523
+ setTimeout ( resumeUpload , waitTime ) ;
520
524
return ;
521
525
}
522
526
You can’t perform that action at this time.
0 commit comments