长轮询sqs队列

时间:2018-06-03 14:17:10

标签: node.js amazon-sqs consumer

我正在使用https://github.com/bbc/sqs-consumer/ SQS Consumer插件来轮询SQS队列。

有时,即使将消息添加到队列,消费者也不会从队列中收到任何消息。

问题

  • 您建议我在AWS SQS队列上设置哪些设置,以确保消费者将每条消息都添加到队列中?

  • 消费者在什么条件下不会收到添加到队列中的消息?就我而言,消息正被添加到队列中,但消费者不会收到消息。

1 个答案:

答案 0 :(得分:0)

感觉你在这里对某些术语感到困惑。

  • VisibilityTimeout基本上是一个超时,表示消费者成功处理和删除该队列上的消息需要多长时间。我们的生产环境中有数千个队列,具体取决于队列使用者对VisibilityTimeout的设置是否正确。我们希望一些消费者花一分钟时间成功处理和删除邮件。其他消费者不应超过五秒钟。
  • ReceiveMessageWaitTimeSecondsWaitTimeSeconds指的是同一件事。 ReceiveMessageWaitTimeSeconds在队列级别设置,而WaitTimeSecondsReceiveMessage调用上设置。 WaitTimeSeconds的优先级高于ReceiveMessageWaitTimeSeconds。这两个选项都控制AWS在返回空响应之前等待多长时间,我强烈建议将其保留为默认值;如果我没记错的话是20秒。

希望有所帮助!