diff --git a/services/document-updater/app.coffee b/services/document-updater/app.coffee index 2962860027..5eb47d9c9e 100644 --- a/services/document-updater/app.coffee +++ b/services/document-updater/app.coffee @@ -14,6 +14,7 @@ if Settings.sentry?.dsn? RedisManager = require('./app/js/RedisManager') DispatchManager = require('./app/js/DispatchManager') +DeleteQueueManager = require('./app/js/DeleteQueueManager') Errors = require "./app/js/Errors" HttpController = require "./app/js/HttpController" mongojs = require "./app/js/mongojs" @@ -146,3 +147,7 @@ module.exports = app for signal in ['SIGINT', 'SIGHUP', 'SIGQUIT', 'SIGUSR1', 'SIGUSR2', 'SIGTERM', 'SIGABRT'] process.on signal, shutdownCleanly(signal) + +if Settings.continuousBackgroundFlush + logger.info "Starting continuous background flush" + DeleteQueueManager.startBackgroundFlush() \ No newline at end of file diff --git a/services/document-updater/app/coffee/DeleteQueueManager.coffee b/services/document-updater/app/coffee/DeleteQueueManager.coffee index f1af0ba244..3fc6b3f644 100644 --- a/services/document-updater/app/coffee/DeleteQueueManager.coffee +++ b/services/document-updater/app/coffee/DeleteQueueManager.coffee @@ -1,3 +1,4 @@ +Settings = require('settings-sharelatex') RedisManager = require "./RedisManager" ProjectManager = require "./ProjectManager" logger = require "logger-sharelatex" @@ -60,4 +61,13 @@ module.exports = DeleteQueueManager = count++ if flushed flushNextProject() - flushNextProject() \ No newline at end of file + flushNextProject() + + startBackgroundFlush: () -> + doFlush = () -> + if Settings.shuttingDown + logger.warn "discontinuing background flush due to shutdown" + return + DeleteQueueManager.flushAndDeleteOldProjects {timeout:1000,min_delete_age:3*60*1000,limit:1000}, () -> + setTimeout doFlush, 10 + doFlush() diff --git a/services/document-updater/config/settings.defaults.coffee b/services/document-updater/config/settings.defaults.coffee index bc83433484..327bf98ee4 100755 --- a/services/document-updater/config/settings.defaults.coffee +++ b/services/document-updater/config/settings.defaults.coffee @@ -95,3 +95,5 @@ module.exports = dsn: process.env.SENTRY_DSN publishOnIndividualChannels: process.env['PUBLISH_ON_INDIVIDUAL_CHANNELS'] or false + + continuousBackgroundFlush: process.env['CONTINUOUS_BACKGROUND_FLUSH'] or false