Yet Another SQS Client for Nodejs.
- Message Acknowledgement
- Event Interface
- Configurable Polling Interval
- Async Message Delivery
npm install sqs.js --save
var sqs = require('sqs.js');
var reader = sqs.reader({
accessKeyId: 'somekey',
secretAccessKey: 'secretKey',
region: 'us-east-1',
queueUrl: 'someQueueUrl',
startPolling: true
});
reader.on('error', function(err) {
console.error(err);
});
reader.on('message', function(msg) {
console.log(Received %s, msg.Body);
msg.ack();
});
var writer = sqs.writer({
accessKeyId: 'somekey',
secretAccessKey: 'secretKey',
region: 'us-east-1',
queueUrl: 'someQueueUrl'
});
writer.publish({MessageBody: '{"id": 1}'});
Required fields:
accessKeyId
AWS AccessKeyId credentialsecretAccessKey
AWS secretAccessKey credentialregion
AWS regionqueueUrl
AWS SQS URL
Optional fields:
version
apiVersion (latest)visibility
VisibilityTimeoutpollInterval
How often SQS is polled (1000)pollingSize
How many messages should each request receive (10)startPolling
Automatically start polling
Emits the following events:
message
(msg) received messageerror
(err) error received by polling AWS
Fetches messages from the queue.
Calls .receiveMessage()
continuously.
Stops polling messages.
Messages default properties are described here.
Messages which shouldn't be delivered anymore should be removed from SQS. Invoke #ack to delete the message. An optional callback can be provided which receives (err, data)
as parameters.
Required fields:
accessKeyId
AWS AccessKeyId credentialsecretAccessKey
AWS secretAccessKey credentialregion
AWS regionqueueUrl
AWS SQS URL
Emits the following events:
error
(err) error received by submitting to AWS
Required fields in msg:
MessageBody
(String)
Optional parameter:
fn
will be called with(err, data)
msgs
is an array of messages (can't bigger than 10)
Required fields in msg:
MessageBody
(String)
Optional parameter:
fn
will be called with(err, data)
Async Delivery method. Every 10th emit, publishBatch
will be invoked with the first 10 messages stored.
Required fields in msg:
MessageBody
(String)
- Make publish interface simpler (less AWSish)
- Return callbacks and Promises
MIT