当最大值为43200时,为什么SQS无法将VisibilityTimeout设置为43199?

Ale*_*ing 3 amazon-sqs amazon-web-services

最近需要在SQS消息上设置一些非常长的超时,并且看到记录的限制是12小时(43200).所以我尝试将超时设置为1秒,然后得到这个错误听起来很疯狂(在大多数数字系统中43199实际上小于43200).

SQSError: SQSError: 400 Bad Request SenderInvalidParameterValueValue 43199 for parameter VisibilityTimeout is invalid. Reason: Total VisibilityTimeout for the message is beyond the limit [43200 seconds]

有人有主意吗?

编辑:看起来'Total'超时的概念与我使用change_visibility API调用设置的超时不同.总计从首次收到消息时开始计时

Lub*_*ach 9

看起来您正在使用ChangeMessageVisibilityAPI在消息上设置消息可见性,该消息已在当时已收到且不可见.

总共消息的可见性超时为12小时.这意味着当您收到消息时,此消息的可见性超时已在运行.当您通话时,ChangeMessageVisibility您可以仅使用不会超过12小时且已经过了可见性超时的值来增加可见性超时.

  • 这些从 SQS 文档中似乎完全*不清楚(至少对我而言)。它读起来好像你可以在任何时候加起来 12 小时。*双关语。 (3认同)
  • AWS 的另一个限制。废话。 (2认同)