High-volume SQS poller
npm install squiss-ts





Please see full documentation here
typescript
import {Squiss, Message} from 'squiss-ts';const awsConfig = {
credentials: {
accessKeyId: 'accessKeyId',
secretAccessKey: 'secretAccessKey',
},
region: '',
};
const squiss = new Squiss({
awsConfig,
queueName: 'my-sqs-queue',
bodyFormat: 'json',
maxInFlight: 15
});
squiss.on('message', (message: Message) => {
console.log(
${message.body.name} says: ${JSON.stringify(message.body.message)} and has attripute p1 with value ${message.attributes.p1});
message.del();
});squiss.start();
const messageToSend = {
name: 'messageName',
message: {
a: 1,
b: 2,
},
};
const propsToSend = {
p1: 1,
p2: 2,
};
squiss.sendMessage(messageToSend, 0, propsToSend);
`Install
`bash
npm install squiss-ts
`How it works
Squiss processes as many messages simultaneously as possible.
Set the maxInFlight option to the number of messages your app can handle at one time without choking, and Squiss will keep
that many messages flowing through your app, grabbing more as you mark each message as handled or ready for deletion.
If the queue is empty, Squiss will maintain an open connection to SQS, waiting for any messages that appear in real time.
Squiss can also handle renewing the visibility timeout for your messages until you handle the message, or message handling time
(set up by you) has passed (see autoExtendTimeout).
Bonus: Squiss will also automatically handle the message attributes formatting and parsing when receiving and sending messages. Versions
Squiss supports Node 6 LTS and higher.Credits
This project is a typescript port (with better performance, bug fixes and new features) of the wonderful and unmaintnaed project TomFrost/Squiss
Squiss was originally created at TechnologyAdvice in Nashville, TN.Contributing
All contributions are happily welcomed!
Please make all pull requests to the
master` branch from your fork and ensure tests pass locally.