1234567891011121314151617181920212223242526272829303132333435 |
- const Bull = require('bull')
- const Promise = require('bluebird')
- /* global WIKI */
- 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)
- })
- }
- }
|