redis-smq
Version:
A high-performance, reliable, and scalable message queue for Node.js.
58 lines • 2.67 kB
JavaScript
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