| 12345678910111213141516171819202122232425262728293031323334353637 | 'use strict'/* global wiki */const Bull = require('bull')const Promise = require('bluebird')module.exports = {  init() {    wiki.data.queues.forEach(queueName => {      this[queueName] = new Bull(queueName, {        prefix: `q-${wiki.config.ha.nodeuid}`,        redis: wiki.config.redis      })    })    return this  },  clean() {    return Promise.each(wiki.data.queues, queueName => {      return new Promise((resolve, reject) => {        let keyStream = wiki.redis.scanStream({          match: `q-${wiki.config.ha.nodeuid}:${queueName}:*`        })        keyStream.on('data', resultKeys => {          if (resultKeys.length > 0) {            wiki.redis.del(resultKeys)          }        })        keyStream.on('end', resolve)      })    }).then(() => {      wiki.logger.info('Purging old queue jobs: OK')    }).return(true).catch(err => {      wiki.logger.error(err)    })  }}
 |