即使将MaxNumberOfMessages参数设置为10并且队列中有13条消息,AWS SQS也会返回2至4条消息

时间:2019-06-14 08:42:36

标签: amazon-web-services amazon-sqs aws-sdk-js

我有一个标准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条消息,并且此过程继续。我尝试弄乱WaitTimeSecondsVisibilityTimeout,但没有用。

我是AWS SQS的新手,谢谢。 :)

1 个答案:

答案 0 :(得分:2)

这不是不正常的行为-根据我的经验,您实际上指定的最大为“最多” 10条消息,除非队列中有很多记录(数百/千或更多),而不是预期的返回数量少。< / p>