A set of functions to help sending bulk messages in sequence or parallel to AWS SQS
npm install sqs-bulk-loaderA set of functions to help sending bulk messages in sequence or parallel to AWS SQS.
- Add @aws-sdk/client-sqs as peer dependency instead of aws-sdk
- Rest of the code should work as it is. The response structure has changed slightly.
More information can be found here




```
npm install sqs-bulk-loader
@aws-sdk/client-sqs is peer dependency for this package. Make sure it is installed.
To use aws-sdk version 2, please use version 3 of this package.
``
npm install sqs-bulk-loader@3
npm test
Basic syntax is:
`js
const {sendBatchedMessages, sendBatchedMessagesInParallel} = require("sqs-bulk-loader")();
const messages = [
{
"Id": "1",
"MessageBody": '{"key1": "value1"}'
},
{
"Id": "2",
"MessageBody": '{"key2": "value2"}'
}
];
// this needs to be in async function
const response = await sendBatchedMessages("someQueueUrl", messages);
console.log(response)
// OR you can use normal promise style as well.
sendBatchedMessages("someQueueUrl", messages)
.then(response => console.log(response));
`
In case you need to inject the @aws-sdk/client-sqs with custom settings. It can be done like this
`js`
const {SQSClient} = require("@aws-sdk/client-sqs");
const sqsClient = new SQSClient({"region": "eu-west-2"});
const {sendBatchedMessages, sendBatchedMessagesInParallel} = require("sqs-bulk-loader")(sqsClient);
Returns: Promise - - promise which resolves on success and rejects on error
| Param | Type | Default | Description |
| --- | --- | --- | --- |
| queueUrl | String | | SQS queue url |
| messages | Array | | Array of messages as per sendMessageBatch's params |
More details - https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-sqs/interfaces/sendmessagebatchcommandinput.html
Returns: Promise - - promise which resolves on success and rejects on error
| Param | Type | Default | Description |
| --- | --- | --- | --- |
| queueUrl | String | | SQS queue url |
| messages | Array | | Array of messages as per sendMessageBatch's params |batchSize` integer to control how many parallel requests to spawn. Default is 10 |
| [options] | Object | {"batchSize": 10} | Optional object containing extra properties which will be passed to function. Currently it supports
More details - https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-sqs/interfaces/sendmessagebatchcommandinput.html