Просмотр исходного кода

Merge pull request #3376 from overleaf/em-queues-init

Do not create queues on module import

GitOrigin-RevId: b040ac2ab84adb22046d94522b37ef0e59ae165f
Eric Mc Sween 6 лет назад
Родитель
Сommit
0ab9c1aa67
2 измененных файлов с 13 добавлено и 6 удалено
  1. 3 0
      services/web/app.js
  2. 10 6
      services/web/app/src/infrastructure/Queues.js

+ 3 - 0
services/web/app.js

@@ -25,6 +25,9 @@ if ((Settings.sentry != null ? Settings.sentry.dsn : undefined) != null) {
 metrics.memory.monitor(logger)
 metrics.memory.monitor(logger)
 const Server = require('./app/src/infrastructure/Server')
 const Server = require('./app/src/infrastructure/Server')
 const mongodb = require('./app/src/infrastructure/mongodb')
 const mongodb = require('./app/src/infrastructure/mongodb')
+const Queues = require('./app/src/infrastructure/Queues')
+
+Queues.initialize()
 
 
 if (Settings.catchErrors) {
 if (Settings.catchErrors) {
   process.removeAllListeners('uncaughtException')
   process.removeAllListeners('uncaughtException')

+ 10 - 6
services/web/app/src/infrastructure/Queues.js

@@ -1,6 +1,15 @@
 const Queue = require('bull')
 const Queue = require('bull')
 const Settings = require('settings-sharelatex')
 const Settings = require('settings-sharelatex')
 
 
+const analyticsQueues = {}
+
+function initialize() {
+  if (Settings.analytics.enabled) {
+    analyticsQueues.events = createQueue('analytics-events')
+    analyticsQueues.editingSessions = createQueue('analytics-editing-sessions')
+  }
+}
+
 function createQueue(queueName, defaultJobOptions) {
 function createQueue(queueName, defaultJobOptions) {
   return new Queue(queueName, {
   return new Queue(queueName, {
     redis: Settings.redis.queues,
     redis: Settings.redis.queues,
@@ -15,9 +24,4 @@ function createQueue(queueName, defaultJobOptions) {
   })
   })
 }
 }
 
 
-module.exports = {
-  analytics: {
-    events: createQueue('analytics-events'),
-    editingSessions: createQueue('analytics-editing-sessions')
-  }
-}
+module.exports = { initialize, analytics: analyticsQueues }