@nesn/commons-sqs-tools
v1.4.0
Published
This is a helper module for SQS handler, It provides configurable retry and error handling features for the handler, let devs focus on the logic of processing message.
Downloads
2
Readme
SQS Tools Module Readme
This is a helper module for SQS handler, It provides configurable retry and error handling features for the handler, let devs focus on the logic of processing message.
Table of Contents
Introduction
Enable a message handler to do the following automatically
- process batched messages in parallel
- set retry interval
- delete message on success
- throw error on fail
- return messageIds of failed messages to trigger a partial retry
Installation
To include the @nesn/commons-sqs-tools
module in your project, you can install it using npm:
npm install @nesn/commons-sqs-tools
Usage
Importing
import { batchedMessageHandler } from '@nesn/commons-sqs-tools';
Wrap the handler
import { batchedMessageHandler } from '@nesn/commons-sqs-tools';
const mainHandler = (sqsEvent) => {
// main logic done in here
};
export const handler = batchedMessageHandler({
handler: mainHandler,
retryStages: [
{ attempts: 3, interval: 30 }, // unit: second
{ attempts: 2, interval: 60 },
{ attempts: 1, interval: 120 }
],
clientConfig: {
credentials: {}, // overwrite credential if needed
endpoint: '' // useful when local debug, local sqs endpoint can be set in here
}
});
Customization
The @nesn/commons-sqs-tools
module provides a default retry and error handling features for your handler. You can extend or modify it to suit your project's needs.
Contributing
Contributions to the @nesn/commons-sqs-tools
module are welcome. If you encounter any issues or have suggestions for improvements, please feel free to open an issue or submit a pull request.
License
The @nesn/commons-sqs-tools
module is released under the MIT License. You can find the full license text in the module's package.json
file.
Please note that this readme is provided as an example and might need adjustments based on your specific project and documentation guidelines.