Reputation: 25
This is my first question.
I'm trying to connect nestjs to Aws sqs and get a batch of message. But, every try i get only one message.
Here i'm ussing SQS-Consumer
const consumerApp = Consumer.create({
queueUrl: 'here_goes_my_url',
region: 'us-east-1',
batchSize: 4,
handleMessageBatch: async(message) => {
console.log('Ha llegado un mensaje de SQS', new Date())
console.log(message)
},
sqs: new AWS.SQS({
httpOptions: {
agent: new Agent({
keepAlive: true
})
}
}),
waitTimeSeconds: 5
})
Here i'm using aws-sdk
const sqs = new AWS.SQS({region: 'us-east-1'})
sqs.receiveMessage({
QueueUrl: 'url',
WaitTimeSeconds: 10,
MaxNumberOfMessages: 5,
}, (err, data) => {
if(err) {
console.log(err)
return;
}
console.log('Hemos recibido esto', data)
})
And here i'm using nestjs-sqs
SqsModule.register({
consumers:[{
name: 'lamda-test',
queueUrl: '',
batchSize: 10,
}]
})
Upvotes: 0
Views: 701
Reputation: 238051
batchSize
is maximum number of messages that you can get. There is no guarantee that you always get 5
messages if a batch size is 5. It only means that you will get no more then 5
at one time.
If you require precisely 5
message for each invocation, you need a fully custom solution for that.
Upvotes: 1