【发布时间】:2017-09-20 07:43:55
【问题描述】:
我有一个 Amazon SQS 队列,我正在尝试让它以这种方式工作:
- 当有新消息添加到队列中时,只有第一个收到该消息的客户端才会开始工作
- 对于其他人,该消息将在一段时间内不可见
是否可以使用 Visibility Timeout 来做到这一点?
【问题讨论】:
-
这正是 Amazon SQS 的默认行为。
标签: amazon-web-services amazon-sqs
我有一个 Amazon SQS 队列,我正在尝试让它以这种方式工作:
是否可以使用 Visibility Timeout 来做到这一点?
【问题讨论】:
标签: amazon-web-services amazon-sqs
除了设置一个较长的Visibility Timeout 外,没有其他方法可以“锁定”消息,最大超时时间为 12 小时。
但是,如果您真正关心的问题还包括错误/崩溃,您可以利用死信队列重新驱动策略来处理无限期无法处理的队列内容。
【讨论】:
当消费者接收并处理来自 SQS 队列的消息时,该消息仍保留在队列中(直到被消费者删除)。为确保其他消费者不会处理相同的消息,您可以设置队列的可见性超时。消费者处理完消息后,您可以从队列中删除该消息。在可见性超时期间,没有其他消费者能够接收和处理相同的消息。
【讨论】: