redis-smq
Version:
A simple high-performance Redis message queue for Node.js.
41 lines • 2.2 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.MessageManager = void 0;
const redis_smq_common_1 = require("redis-smq-common");
const scheduled_messages_1 = require("./messages/scheduled-messages");
const acknowledged_messages_1 = require("./messages/acknowledged-messages");
const dead_lettered_messages_1 = require("./messages/dead-lettered-messages");
const pending_messages_1 = require("./messages/pending-messages");
const configuration_1 = require("../../config/configuration");
class MessageManager {
constructor(redisClient, acknowledgedMessages, deadLetteredMessages, pendingMessages, scheduledMessages) {
this.redisClient = redisClient;
this.acknowledgedMessages = acknowledgedMessages;
this.deadLetteredMessages = deadLetteredMessages;
this.pendingMessages = pendingMessages;
this.scheduledMessages = scheduledMessages;
}
quit(cb) {
this.redisClient.halt(cb);
}
static createInstance(config, cb) {
const cfg = (0, configuration_1.getConfiguration)(config);
(0, redis_smq_common_1.createClientInstance)(cfg.redis, (err, client) => {
if (err)
cb(err);
else if (!client)
cb(new redis_smq_common_1.errors.EmptyCallbackReplyError());
else {
const nsLogger = redis_smq_common_1.logger.getNamespacedLogger(cfg.logger, 'message-manager');
const acknowledgedMessages = new acknowledged_messages_1.AcknowledgedMessages(cfg, client, nsLogger);
const deadLetteredMessages = new dead_lettered_messages_1.DeadLetteredMessages(cfg, client, nsLogger);
const pendingMessages = new pending_messages_1.PendingMessages(cfg, client, nsLogger);
const scheduledMessages = new scheduled_messages_1.ScheduledMessages(cfg, client, nsLogger);
const messageManager = new MessageManager(client, acknowledgedMessages, deadLetteredMessages, pendingMessages, scheduledMessages);
cb(null, messageManager);
}
});
}
}
exports.MessageManager = MessageManager;
//# sourceMappingURL=message-manager.js.map
;