redis-smq
Version:
A high-performance, reliable, and scalable message queue for Node.js.
39 lines • 2.13 kB
JavaScript
import { key } from '../builder.js';
const queuePath = (ns, queueName) => ['ns', ns, 'q', queueName];
const consumerGroupPath = (ns, queueName, consumerGroupId = null) => consumerGroupId
? [...queuePath(ns, queueName), 'cgp', consumerGroupId]
: queuePath(ns, queueName);
export const queue = {
getQueueKeys(ns, queueName, consumerGroupId = null) {
return {
keyQueueProperties: key(...queuePath(ns, queueName), 'prop'),
keyQueuePublished: key(...queuePath(ns, queueName), 'pub'),
keyQueuePending: key(...consumerGroupPath(ns, queueName, consumerGroupId), 'pend'),
keyQueuePriority: key(...consumerGroupPath(ns, queueName, consumerGroupId), 'prio'),
keyQueueDeadLetter: key(...queuePath(ns, queueName), 'dl'),
keyQueueProcessing: key(...queuePath(ns, queueName), 'proc'),
keyQueueAcknowledged: key(...queuePath(ns, queueName), 'ack'),
keyQueueScheduled: key(...queuePath(ns, queueName), 'sched'),
keyQueueDelayed: key(...queuePath(ns, queueName), 'dly'),
keyQueueRequeued: key(...queuePath(ns, queueName), 'req'),
keyQueueConsumers: key(...queuePath(ns, queueName), 'cons'),
keyQueueConsumerGroups: key(...queuePath(ns, queueName), 'cgp'),
keyQueueStateHistory: key(...queuePath(ns, queueName), 'sh'),
keyQueueExchangeBindings: key(...queuePath(ns, queueName), 'bind'),
keyQueueProcessingQueues: key(...queuePath(ns, queueName), 'proc-q'),
keyQueueWorkersLock: key(...queuePath(ns, queueName), 'wlock'),
keyQueueRateLimit: key(...queuePath(ns, queueName), 'rate'),
};
},
getQueueConsumerKeys(queue, consumerId) {
return {
keyQueueProcessing: key(...queuePath(queue.ns, queue.name), 'cons', consumerId, 'proc'),
};
},
getQueueConsumerGroupKeys(queue, consumerGroupId) {
return {
keyQueueConsumerGroupConsumers: key(...consumerGroupPath(queue.ns, queue.name, consumerGroupId), 'cons'),
};
},
};
//# sourceMappingURL=queue.js.map