redis-smq
Version:
A simple high-performance Redis message queue for Node.js.
51 lines • 2.14 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.consumerQueues = void 0;
const redis_keys_1 = require("../../common/redis-keys/redis-keys");
const redis_smq_common_1 = require("redis-smq-common");
exports.consumerQueues = {
removeConsumer(multi, queue, consumerId) {
const { keyQueueConsumers, keyConsumerQueues } = redis_keys_1.redisKeys.getQueueConsumerKeys(queue, consumerId);
multi.hdel(keyQueueConsumers, consumerId);
multi.srem(keyConsumerQueues, JSON.stringify(queue));
},
getQueueConsumers(client, queue, transform, cb) {
const { keyQueueConsumers } = redis_keys_1.redisKeys.getQueueKeys(queue);
client.hgetall(keyQueueConsumers, (err, reply) => {
if (err)
cb(err);
else {
const consumers = reply !== null && reply !== void 0 ? reply : {};
if (transform) {
const data = {};
redis_smq_common_1.async.eachIn(consumers, (item, key, done) => {
data[key] = JSON.parse(item);
done();
}, () => cb(null, data));
}
else
cb(null, consumers);
}
});
},
getQueueConsumerIds(client, queue, cb) {
const { keyQueueConsumers } = redis_keys_1.redisKeys.getQueueKeys(queue);
client.hkeys(keyQueueConsumers, cb);
},
countQueueConsumers(client, queue, cb) {
const { keyQueueConsumers } = redis_keys_1.redisKeys.getQueueKeys(queue);
client.hlen(keyQueueConsumers, cb);
},
getConsumerQueues(client, consumerId, cb) {
const { keyConsumerQueues } = redis_keys_1.redisKeys.getConsumerKeys(consumerId);
client.smembers(keyConsumerQueues, (err, reply) => {
if (err)
cb(err);
else {
const queues = (reply !== null && reply !== void 0 ? reply : []).map((i) => JSON.parse(i));
cb(null, queues);
}
});
},
};
//# sourceMappingURL=consumer-queues.js.map
;