redis-smq
Version:
A simple high-performance Redis message queue for Node.js.
33 lines • 1.29 kB
JavaScript
import { async } from 'redis-smq-common';
import { redisKeys } from '../../common/redis-keys/redis-keys.js';
export const consumerQueues = {
getQueueConsumers(client, queue, transform, cb) {
const { keyQueueConsumers } = redisKeys.getQueueKeys(queue, null);
client.hgetall(keyQueueConsumers, (err, reply) => {
if (err)
return cb(err);
const consumers = reply ?? {};
if (!transform)
return cb(null, consumers);
const data = {};
async.eachIn(consumers, (item, key, done) => {
data[key] = JSON.parse(item);
done();
}, () => cb(null, data));
});
},
getQueueConsumerIds(client, queue, cb) {
const { keyQueueConsumers } = redisKeys.getQueueKeys(queue, null);
client.hkeys(keyQueueConsumers, cb);
},
getConsumerQueues(client, consumerId, cb) {
const { keyConsumerQueues } = redisKeys.getConsumerKeys(consumerId);
client.smembers(keyConsumerQueues, (err, reply) => {
if (err)
return cb(err);
const queues = (reply ?? []).map((i) => JSON.parse(i));
cb(null, queues);
});
},
};
//# sourceMappingURL=consumer-queues.js.map