UNPKG

redis-smq

Version:

A high-performance, reliable, and scalable message queue for Node.js.

58 lines 2.67 kB
import { async, CallbackEmptyReplyError, createLogger, } from 'redis-smq-common'; import { Configuration } from '../config-manager/configuration.js'; import { _parseQueueExtendedParams } from '../queue-manager/_/_parse-queue-extended-params.js'; import { MessageBrowserFactory } from './message-browser-factory.js'; export class QueueMessagesAbstract { logger; constructor() { this.logger = createLogger(Configuration.getConfig().logger, this.constructor.name); } withMessageBrowser(queue, operation, cb) { const parsedParams = _parseQueueExtendedParams(queue); if (parsedParams instanceof Error) return cb(parsedParams); MessageBrowserFactory.createBrowserForQueue(parsedParams.queueParams, this.messageType, this.logger, (err, browser) => { if (err) return cb(err); if (!browser) return cb(new CallbackEmptyReplyError()); operation(browser, cb); }); } countMessages(queue, cb) { return async.withOptionalCallback(cb, (callback) => { this.withMessageBrowser(queue, (browser, done) => browser.countMessages(queue, done), callback); }); } getMessageIds(queue, page, pageSize, cb) { return async.withOptionalCallback(cb, (callback) => { this.withMessageBrowser(queue, (browser, done) => browser.getMessageIds(queue, page, pageSize, done), callback); }); } getMessages(queue, page, pageSize, cb) { return async.withOptionalCallback(cb, (callback) => { this.withMessageBrowser(queue, (browser, done) => browser.getMessages(queue, page, pageSize, done), callback); }); } purge(queue, cb) { return async.withOptionalCallback(cb, (callback) => { this.withMessageBrowser(queue, (browser, done) => browser.purge(queue, done), callback); }); } cancelPurge(queue, jobId, cb) { return async.withOptionalCallback(cb, (callback) => { this.withMessageBrowser(queue, (browser, done) => browser.cancelPurge(queue, jobId, done), callback); }); } getPurgeJob(queue, jobId, cb) { return async.withOptionalCallback(cb, (callback) => { this.withMessageBrowser(queue, (browser, done) => browser.getPurgeJob(queue, jobId, done), callback); }); } getPurgeJobStatus(queue, jobId, cb) { return async.withOptionalCallback(cb, (callback) => { this.withMessageBrowser(queue, (browser, done) => browser.getPurgeJobStatus(queue, jobId, done), callback); }); } } //# sourceMappingURL=queue-messages-abstract.js.map