A lightweight message queue for Node.js that requires no dedicated queue server. Just a Redis server.
- After creating a queue you can send messages to that queue.
- The messages will be handled in a FIFO (first in first out) manner unless specified with a delay.
- Every message has a unique
id
that you can use to delete the message. - The
sendMessage
method will return theid
for a sent message. - The
receiveMessage
method will return anid
along with the message and some stats. - Should you not delete the message it will be eligible to be received again after the visibility timeout is reached.
- Please have a look at the
createQueue
andreceiveMessage
methods described below for optional parameters like visibility timeout and delay.
npm install --save rsmq-promise
const RSMQPromise = require('rsmq-promise');
const rsmq = new RSMQPromise({
host: "127.0.0.1",
port: 6379
});
rsmq.createQueue({
qname: 'myqueue'
}).then(done => {
console.log('Queue created!');
}).catch(err => {
console.log(err);
});
rsmq.sendMessage({
qname: 'myqueue', message: 'my message!'
}).then(result => {
console.log("Message sent. ID:", result);
}).catch(err => {
console.log(err);
})
rsmq.receiveMessage({
qname: 'myqueue'
}).then(message => {
console.log(message)
}).catch(err => {
console.log(err);
})
rsmq.deleteMessage({
qname: 'myqueue',
id: 'dhoiwpiirm15ce77305a5c3a3b0f230c6e20f09b55'
}).then(result => {
console.log("Message deleted.");
}).catch(err => {
console.log("Message not found.");
});
rsmq.listQueues()
.then(queues => {
console.log(queues);
})
.catch(err => {
console.log(err);
})
Thanks for: Patrick Liess
More info: https://github.com/smrchy/rsmq