我有一个标准AWS SQS,其中包含13条消息。我编写了一个简单的JavaScript函数,以通过长时间轮询获取10条消息。
代码如下:
/* aws config */
Poller.prototype.poll = async function() {
let response;
try{
response = await this.SQS.receiveMessage({
QueueUrl: "https://sqs.region.amazonaws.com/user_id/queue_name",
MaxNumberOfMessages: 10,
VisibilityTimeout: 20,
WaitTimeSeconds: 20
}).promise();
return response;
} catch(err) {
console.log('its an error');
/* handel error */
}
}
每次我运行此代码时,它都会返回2条消息,然后返回4条消息,并且此过程继续。我尝试弄乱WaitTimeSeconds
和VisibilityTimeout
,但没有用。
我是AWS SQS的新手,谢谢。 :)
答案 0 :(得分:2)
这不是不正常的行为-根据我的经验,您实际上指定的最大为“最多” 10条消息,除非队列中有很多记录(数百/千或更多),而不是预期的返回数量少。< / p>