seneca-sqs-queue
v0.3.1
Published
A Seneca queue implementation over Amazon SQS
Downloads
4
Readme
seneca-queue
A SQS job queue plugin for Seneca
It support send/receive messages to/from a given Amazon SQS queue.
In order to receive a message you should add a Seneca patter that will match the message you are sending i.e:
seneca.add({type: 'task'}, function (args, next) {
console.log(args);
next(); // This is needed to receive the next message
})
and then start the receiver with:
seneca.act({role: 'queue', cmd: 'start'});
this will receive all the messages containing a type
key with the task
value, to send a message like this use:
seneca.act({role: 'queue', cmd: 'enqueue', msg: {type: 'task', number '42'}});
you can stop the queue with:
seneca.act({role: 'queue', cmd: 'stop'});
Events
As you may suspect, when we stop the receiver it doesn't stop right away. If we want to execute and action when the receiver is stopped we can subscribe to the 'stopped' event
seneca.add({
role: 'queue',
evnt: 'stopped'
}, function () {
console.log("RECEIVER STOPPED");
});
You can do the same for the empty
event, it is emitted every time the receiver time out waiting for a message.
Test
To run the tests you need to create a config/test_env
file using config/example_env
as example and provide all the required information
The you can run:
npm test
Acknowledgements
Sponsored by nearForm
License
MIT