redis-smq
Version:
A simple high-performance Redis message queue for Node.js.
56 lines • 2.52 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.DeadLetteredMessages = void 0;
const redis_keys_1 = require("../../../common/redis-keys/redis-keys");
const list_message_storage_1 = require("../message-storage/list-message-storage");
const queue_1 = require("../../queue-manager/queue");
class DeadLetteredMessages extends list_message_storage_1.ListMessageStorage {
purge(queue, cb) {
const queueParams = queue_1.Queue.getParams(this.config, queue);
const { keyQueueDL } = redis_keys_1.redisKeys.getQueueKeys(queueParams);
this.purgeMessages({ keyMessages: keyQueueDL }, (err) => {
if (err)
cb(err);
else {
this.logger.info(`Dead-lettered messages from queue (${JSON.stringify(queue)}) have been deleted`);
cb();
}
});
}
requeue(queue, messageId, sequenceId, cb) {
const queueParams = queue_1.Queue.getParams(this.config, queue);
const { keyQueueDL } = redis_keys_1.redisKeys.getQueueKeys(queueParams);
this.requeueMessage({ keyMessages: keyQueueDL }, { sequenceId, messageId }, (err) => {
if (err)
cb(err);
else {
this.logger.info(`Dead-lettered message (ID ${messageId}) has been re-queued`);
cb();
}
});
}
delete(queue, messageId, sequenceId, cb) {
const queueParams = queue_1.Queue.getParams(this.config, queue);
const { keyQueueDL } = redis_keys_1.redisKeys.getQueueKeys(queueParams);
this.deleteMessage({ keyMessages: keyQueueDL }, { messageId, sequenceId }, (err) => {
if (err)
cb(err);
else {
this.logger.info(`Dead-lettered message (ID ${messageId}) has been deleted`);
cb();
}
});
}
list(queue, skip, take, cb) {
const queueParams = queue_1.Queue.getParams(this.config, queue);
const { keyQueueDL } = redis_keys_1.redisKeys.getQueueKeys(queueParams);
this.fetchMessages({ keyMessages: keyQueueDL }, skip, take, cb);
}
count(queue, cb) {
const queueParams = queue_1.Queue.getParams(this.config, queue);
const { keyQueueDL } = redis_keys_1.redisKeys.getQueueKeys(queueParams);
this.countMessages({ keyMessages: keyQueueDL }, cb);
}
}
exports.DeadLetteredMessages = DeadLetteredMessages;
//# sourceMappingURL=dead-lettered-messages.js.map
;