overleaf/services/web/app/src/infrastructure/Queues.js

28 lines
657 B
JavaScript
Raw Normal View History

const Queue = require('bull')
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) {
return new Queue(queueName, {
redis: Settings.redis.queues,
defaultJobOptions: {
removeOnComplete: true,
attempts: 11,
backoff: {
type: 'exponential',
delay: 3000
}
}
})
}
module.exports = { initialize, analytics: analyticsQueues }