From 25e1ad74912cd15b8395963d9f645bba0ede0e53 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Wed, 5 Dec 2018 16:17:41 +0000 Subject: [PATCH] remove redis.realtime real time pushes data into the document updater redis instance --- services/document-updater/app.coffee | 9 --------- .../app/coffee/DispatchManager.coffee | 2 +- .../app/coffee/RealTimeRedisManager.coffee | 4 ++-- .../config/settings.defaults.coffee | 13 +------------ .../coffee/helpers/DocUpdaterClient.coffee | 6 +++--- .../DispatchManager/DispatchManagerTests.coffee | 8 ++++++-- .../ProjectHistoryRedisManagerTests.coffee | 2 ++ .../RealTimeRedisManagerTests.coffee | 2 +- 8 files changed, 16 insertions(+), 30 deletions(-) diff --git a/services/document-updater/app.coffee b/services/document-updater/app.coffee index 516af85fea..b8a6a63a3e 100644 --- a/services/document-updater/app.coffee +++ b/services/document-updater/app.coffee @@ -70,15 +70,6 @@ app.get '/status', (req, res)-> else res.send('document updater is alive') -webRedisClient = require("redis-sharelatex").createClient(Settings.redis.realtime) -app.get "/health_check/redis", (req, res, next) -> - webRedisClient.healthCheck (error) -> - if error? - logger.err {err: error}, "failed redis health check" - res.send 500 - else - res.send 200 - docUpdaterRedisClient = require("redis-sharelatex").createClient(Settings.redis.documentupdater) app.get "/health_check/redis_cluster", (req, res, next) -> docUpdaterRedisClient.healthCheck (error) -> diff --git a/services/document-updater/app/coffee/DispatchManager.coffee b/services/document-updater/app/coffee/DispatchManager.coffee index 93a22bfc07..e751534068 100644 --- a/services/document-updater/app/coffee/DispatchManager.coffee +++ b/services/document-updater/app/coffee/DispatchManager.coffee @@ -10,7 +10,7 @@ RateLimitManager = require('./RateLimitManager') module.exports = DispatchManager = createDispatcher: (RateLimiter) -> - client = redis.createClient(Settings.redis.realtime) + client = redis.createClient(Settings.redis.documentupdater) worker = { client: client _waitForUpdateThenDispatchWorker: (callback = (error) ->) -> diff --git a/services/document-updater/app/coffee/RealTimeRedisManager.coffee b/services/document-updater/app/coffee/RealTimeRedisManager.coffee index 7da7ca1f64..64bbe572b8 100644 --- a/services/document-updater/app/coffee/RealTimeRedisManager.coffee +++ b/services/document-updater/app/coffee/RealTimeRedisManager.coffee @@ -1,6 +1,6 @@ Settings = require('settings-sharelatex') -rclient = require("redis-sharelatex").createClient(Settings.redis.realtime) -Keys = Settings.redis.realtime.key_schema +rclient = require("redis-sharelatex").createClient(Settings.redis.documentupdater) +Keys = Settings.redis.documentupdater.key_schema logger = require('logger-sharelatex') MAX_OPS_PER_ITERATION = 8 # process a limited number of ops for safety diff --git a/services/document-updater/config/settings.defaults.coffee b/services/document-updater/config/settings.defaults.coffee index e23510afda..7f36e47207 100755 --- a/services/document-updater/config/settings.defaults.coffee +++ b/services/document-updater/config/settings.defaults.coffee @@ -20,18 +20,6 @@ module.exports = url: "http://#{process.env["PROJECT_HISTORY_HOST"] or "localhost"}:3054" redis: - realtime: - port: process.env["REAL_TIME_REDIS_PORT"] or process.env["REDIS_PORT"] or "6379" - host: process.env["REAL_TIME_REDIS_HOST"] or process.env["REDIS_HOST"] or "localhost" - password: process.env["REAL_TIME_REDIS_PASSWORD"] or process.env["REDIS_PASSWORD"] or "" - key_schema: - pendingUpdates: ({doc_id}) -> "PendingUpdates:#{doc_id}" - # cluster: [{ - # port: "7000" - # host: "localhost" - # }] - # key_schema: - # pendingUpdates: ({doc_id}) -> "PendingUpdates:{#{doc_id}}" documentupdater: port: process.env["DOC_UPDATER_REDIS_PORT"] or process.env["REDIS_PORT"] or "6379" host: process.env["DOC_UPDATER_REDIS_HOST"] or process.env["REDIS_HOST"] or "localhost" @@ -49,6 +37,7 @@ module.exports = projectHistoryId: ({doc_id}) -> "ProjectHistoryId:#{doc_id}" projectState: ({project_id}) -> "ProjectState:#{project_id}" unflushedTime: ({doc_id}) -> "UnflushedTime:#{doc_id}" + pendingUpdates: ({doc_id}) -> "PendingUpdates:#{doc_id}" # cluster: [{ # port: "7000" # host: "localhost" diff --git a/services/document-updater/test/acceptance/coffee/helpers/DocUpdaterClient.coffee b/services/document-updater/test/acceptance/coffee/helpers/DocUpdaterClient.coffee index 7f50d64372..587e6f3af9 100644 --- a/services/document-updater/test/acceptance/coffee/helpers/DocUpdaterClient.coffee +++ b/services/document-updater/test/acceptance/coffee/helpers/DocUpdaterClient.coffee @@ -1,10 +1,10 @@ Settings = require('settings-sharelatex') -rclient = require("redis-sharelatex").createClient(Settings.redis.realtime) -keys = Settings.redis.realtime.key_schema +rclient = require("redis-sharelatex").createClient(Settings.redis.documentupdater) +keys = Settings.redis.documentupdater.key_schema request = require("request").defaults(jar: false) async = require "async" -rclient_sub = require("redis-sharelatex").createClient(Settings.redis.realtime) +rclient_sub = require("redis-sharelatex").createClient(Settings.redis.documentupdater) rclient_sub.subscribe "applied-ops" rclient_sub.setMaxListeners(0) diff --git a/services/document-updater/test/unit/coffee/DispatchManager/DispatchManagerTests.coffee b/services/document-updater/test/unit/coffee/DispatchManager/DispatchManagerTests.coffee index b749e83a5d..85cdcb5a7e 100644 --- a/services/document-updater/test/unit/coffee/DispatchManager/DispatchManagerTests.coffee +++ b/services/document-updater/test/unit/coffee/DispatchManager/DispatchManagerTests.coffee @@ -4,16 +4,21 @@ should = chai.should() modulePath = "../../../../app/js/DispatchManager.js" SandboxedModule = require('sandboxed-module') + describe "DispatchManager", -> beforeEach -> + @timeout(3000) @DispatchManager = SandboxedModule.require modulePath, requires: "./UpdateManager" : @UpdateManager = {} "logger-sharelatex": @logger = { log: sinon.stub() } "settings-sharelatex": @settings = redis: - realtime: {} + documentupdater: {} "redis-sharelatex": @redis = {} "./RateLimitManager": {} + "./Metrics": + Timer: -> + done: -> @callback = sinon.stub() @RateLimiter = { run: (task,cb) -> task(cb) } # run task without rate limit @@ -22,7 +27,6 @@ describe "DispatchManager", -> @client = auth: sinon.stub() @redis.createClient = sinon.stub().returns @client - @worker = @DispatchManager.createDispatcher(@RateLimiter) it "should create a new redis client", -> diff --git a/services/document-updater/test/unit/coffee/ProjectHistoryRedisManager/ProjectHistoryRedisManagerTests.coffee b/services/document-updater/test/unit/coffee/ProjectHistoryRedisManager/ProjectHistoryRedisManagerTests.coffee index 8c6ff5c7d7..a93545b250 100644 --- a/services/document-updater/test/unit/coffee/ProjectHistoryRedisManager/ProjectHistoryRedisManagerTests.coffee +++ b/services/document-updater/test/unit/coffee/ProjectHistoryRedisManager/ProjectHistoryRedisManagerTests.coffee @@ -24,6 +24,8 @@ describe "ProjectHistoryRedisManager", -> } "redis-sharelatex": createClient: () => @rclient + "logger-sharelatex": + log:-> globals: JSON: @JSON = JSON diff --git a/services/document-updater/test/unit/coffee/RealTimeRedisManager/RealTimeRedisManagerTests.coffee b/services/document-updater/test/unit/coffee/RealTimeRedisManager/RealTimeRedisManagerTests.coffee index a04da996dc..375b85df78 100644 --- a/services/document-updater/test/unit/coffee/RealTimeRedisManager/RealTimeRedisManagerTests.coffee +++ b/services/document-updater/test/unit/coffee/RealTimeRedisManager/RealTimeRedisManagerTests.coffee @@ -15,7 +15,7 @@ describe "RealTimeRedisManager", -> "redis-sharelatex": createClient: () => @rclient "settings-sharelatex": redis: - realtime: @settings = + documentupdater: @settings = key_schema: pendingUpdates: ({doc_id}) -> "PendingUpdates:#{doc_id}" "logger-sharelatex": { log: () -> }