From 0d46c3e2b31a65dd5c69bf11c9e8572221da3c0f Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Mon, 17 Jul 2017 10:08:21 +0100 Subject: [PATCH] WIP: auto-retry web requests --- .../document-updater/app/coffee/PersistenceManager.coffee | 4 +++- services/document-updater/package.json | 1 + .../coffee/PersistenceManager/PersistenceManagerTests.coffee | 4 +++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/services/document-updater/app/coffee/PersistenceManager.coffee b/services/document-updater/app/coffee/PersistenceManager.coffee index 457627982f..31298e31b6 100644 --- a/services/document-updater/app/coffee/PersistenceManager.coffee +++ b/services/document-updater/app/coffee/PersistenceManager.coffee @@ -1,4 +1,4 @@ -request = require "request" +request = require "requestretry" Settings = require "settings-sharelatex" Errors = require "./Errors" Metrics = require "./Metrics" @@ -28,6 +28,7 @@ module.exports = PersistenceManager = sendImmediately: true jar: false timeout: MAX_HTTP_REQUEST_LENGTH + maxAttempts: 2 # for requestretry }, (error, res, body) -> return callback(error) if error? if res.statusCode >= 200 and res.statusCode < 300 @@ -65,6 +66,7 @@ module.exports = PersistenceManager = sendImmediately: true jar: false timeout: MAX_HTTP_REQUEST_LENGTH + maxAttempts: 2 # for requestretry }, (error, res, body) -> return callback(error) if error? if res.statusCode >= 200 and res.statusCode < 300 diff --git a/services/document-updater/package.json b/services/document-updater/package.json index c2976e2934..f1787e4f41 100644 --- a/services/document-updater/package.json +++ b/services/document-updater/package.json @@ -16,6 +16,7 @@ "metrics-sharelatex": "git+https://github.com/sharelatex/metrics-sharelatex.git#v1.5.0", "redis-sharelatex": "git+https://github.com/sharelatex/redis-sharelatex.git#v1.0.3", "request": "2.25.0", + "requestretry": "^1.12.0", "sandboxed-module": "~0.2.0", "settings-sharelatex": "git+https://github.com/sharelatex/settings-sharelatex.git#v1.0.0", "sinon": "~1.5.2", diff --git a/services/document-updater/test/unit/coffee/PersistenceManager/PersistenceManagerTests.coffee b/services/document-updater/test/unit/coffee/PersistenceManager/PersistenceManagerTests.coffee index 19a3d547a2..cd44ce52b3 100644 --- a/services/document-updater/test/unit/coffee/PersistenceManager/PersistenceManagerTests.coffee +++ b/services/document-updater/test/unit/coffee/PersistenceManager/PersistenceManagerTests.coffee @@ -8,7 +8,7 @@ Errors = require "../../../../app/js/Errors" describe "PersistenceManager", -> beforeEach -> @PersistenceManager = SandboxedModule.require modulePath, requires: - "request": @request = sinon.stub() + "requestretry": @request = sinon.stub() "settings-sharelatex": @Settings = {} "./Metrics": @Metrics = Timer: class Timer @@ -50,6 +50,7 @@ describe "PersistenceManager", -> sendImmediately: true jar: false timeout: 5000 + maxAttempts: 2 }) .should.equal true @@ -129,6 +130,7 @@ describe "PersistenceManager", -> sendImmediately: true jar: false timeout: 5000 + maxAttempts: 2 }) .should.equal true