Browse Source

Merge pull request #3761 from overleaf/bg-redis-and-request-cleanups

redis and request cleanups

GitOrigin-RevId: d2bf133ef823c96b06eb09b4ef2c83ba7c54cd12
Brian Gough 5 năm trước cách đây
mục cha
commit
be95516185

+ 7 - 5
services/web/app/src/Features/Compile/ClsiCookieManager.js

@@ -14,7 +14,7 @@
 let rclient_secondary
 const OError = require('@overleaf/o-error')
 const Settings = require('settings-sharelatex')
-const request = require('request')
+const request = require('request').defaults({ timeout: 30 * 1000 })
 const RedisWrapper = require('../../infrastructure/RedisWrapper')
 const rclient = RedisWrapper.client('clsi_cookie')
 if (Settings.redis.clsi_cookie_secondary != null) {
@@ -114,10 +114,12 @@ module.exports = function(backendGroup) {
       if (callback == null) {
         callback = function(err) {}
       }
-      const multi = rclient.multi()
-      multi.set(this.buildKey(project_id), serverId)
-      multi.expire(this.buildKey(project_id), Settings.clsiCookie.ttl)
-      return multi.exec(callback)
+      rclient.setex(
+        this.buildKey(project_id),
+        Settings.clsiCookie.ttl,
+        serverId,
+        callback
+      )
     },
 
     clearServerId(project_id, callback) {

+ 1 - 1
services/web/app/src/Features/DocumentUpdater/DocumentUpdaterHandler.js

@@ -1,4 +1,4 @@
-const request = require('request').defaults()
+const request = require('request').defaults({ timeout: 30 * 100 })
 const OError = require('@overleaf/o-error')
 const settings = require('settings-sharelatex')
 const _ = require('underscore')

+ 14 - 29
services/web/test/unit/src/Compile/ClsiCookieManagerTests.js

@@ -23,24 +23,19 @@ const realRequst = require('request')
 describe('ClsiCookieManager', function() {
   beforeEach(function() {
     const self = this
-    this.redisMulti = {
-      set: sinon.stub(),
-      get: sinon.stub(),
-      expire: sinon.stub(),
-      exec: sinon.stub()
-    }
     this.redis = {
       auth() {},
       get: sinon.stub(),
-      multi() {
-        return self.redisMulti
-      }
+      setex: sinon.stub().callsArg(3)
     }
     this.project_id = '123423431321'
     this.request = {
       get: sinon.stub(),
       cookie: realRequst.cookie,
-      jar: realRequst.jar
+      jar: realRequst.jar,
+      defaults: () => {
+        return this.request
+      }
     }
     this.settings = {
       redis: {
@@ -163,7 +158,6 @@ describe('ClsiCookieManager', function() {
       this.ClsiCookieManager._parseServerIdFromResponse = sinon
         .stub()
         .returns('clsi-8')
-      return this.redisMulti.exec.callsArgWith(0)
     })
 
     it('should set the server id with a ttl', function(done) {
@@ -171,13 +165,11 @@ describe('ClsiCookieManager', function() {
         this.project_id,
         this.response,
         err => {
-          this.redisMulti.set
-            .calledWith(`clsiserver:${this.project_id}`, 'clsi-8')
-            .should.equal(true)
-          this.redisMulti.expire
+          this.redis.setex
             .calledWith(
               `clsiserver:${this.project_id}`,
-              this.settings.clsiCookie.ttl
+              this.settings.clsiCookie.ttl,
+              'clsi-8'
             )
             .should.equal(true)
           return done()
@@ -208,7 +200,7 @@ describe('ClsiCookieManager', function() {
         this.project_id,
         this.response,
         (err, serverId) => {
-          this.redisMulti.exec.called.should.equal(false)
+          this.redis.setex.called.should.equal(false)
           return done()
         }
       )
@@ -222,19 +214,14 @@ describe('ClsiCookieManager', function() {
         this.project_id,
         this.response,
         (err, serverId) => {
-          this.redisMulti.exec.called.should.equal(false)
+          this.redis.setex.called.should.equal(false)
           return done()
         }
       )
     })
 
     it('should also set in the secondary if secondary redis is enabled', function(done) {
-      this.redisSecondaryMulti = {
-        set: sinon.stub(),
-        expire: sinon.stub(),
-        exec: sinon.stub()
-      }
-      this.redis_secondary = { multi: () => this.redisSecondaryMulti }
+      this.redis_secondary = { setex: sinon.stub().callsArg(3) }
       this.settings.redis.clsi_cookie_secondary = {}
       this.RedisWrapper.client = sinon.stub()
       this.RedisWrapper.client.withArgs('clsi_cookie').returns(this.redis)
@@ -254,13 +241,11 @@ describe('ClsiCookieManager', function() {
         this.project_id,
         this.response,
         (err, serverId) => {
-          this.redisSecondaryMulti.set
-            .calledWith(`clsiserver:${this.project_id}`, 'clsi-8')
-            .should.equal(true)
-          this.redisSecondaryMulti.expire
+          this.redis_secondary.setex
             .calledWith(
               `clsiserver:${this.project_id}`,
-              this.settings.clsiCookie.ttl
+              this.settings.clsiCookie.ttl,
+              'clsi-8'
             )
             .should.equal(true)
           return done()