redis-smq
Version:
A high-performance, reliable, and scalable message queue for Node.js.
34 lines • 1.67 kB
JavaScript
import { QueueMessagesAbstract } from './queue-messages-abstract.js';
import { async, CallbackEmptyReplyError } from 'redis-smq-common';
import { _parseQueueParams } from '../queue-manager/_/_parse-queue-params.js';
import { withSharedPoolConnection } from '../common/redis/redis-connection-pool/with-shared-pool-connection.js';
import { _getQueueProperties } from '../queue-manager/_/_get-queue-properties.js';
import { EQueueMessageType, } from './types/index.js';
export class QueuePublishedMessages extends QueueMessagesAbstract {
messageType = EQueueMessageType.PUBLISHED;
countMessagesByStatus(queue, cb) {
return async.withOptionalCallback(cb, (callback) => {
const queueParams = _parseQueueParams(queue);
if (queueParams instanceof Error) {
return callback(queueParams);
}
withSharedPoolConnection((client, cb) => {
_getQueueProperties(client, queueParams, (err, properties) => {
if (err) {
return cb(err);
}
if (!properties) {
return cb(new CallbackEmptyReplyError());
}
return cb(null, {
pending: properties.pendingMessagesCount,
acknowledged: properties.acknowledgedMessagesCount,
scheduled: properties.scheduledMessagesCount,
deadLettered: properties.deadLetteredMessagesCount,
});
});
}, callback);
});
}
}
//# sourceMappingURL=queue-published-messages.js.map