首页 文章

Amazon SQS - 使消息在x秒内不可见

提问于
浏览
1

我有一个亚马逊SQS队列,我试图让它以这种方式工作:

  • 当新消息添加到队列时,只有收到该消息的第一个客户端才会开始工作

  • 对于其他人,该消息将在一段时间内不可见

是否可以使用Visibility Timeout执行此操作?

2 回答

  • 2

    当消费者从SQS队列接收并处理消息时,消息仍然保留在队列中(直到消费者删除它) . 要确保其他使用者不处理相同的消息,您可以设置队列的 visibility timeout . 消费者处理完消息后,您可以从队列中删除消息 . 在可见性超时期间,没有其他消费者能够接收和处理相同的消息 .

  • 0

    除了设置长 Visibility Timeout ,最长12小时超时,没有其他方法可以"lock"消息 .

    但是,如果您真正担心的还包括错误/崩溃,您可以使用Dead-Letter-Queue重启策略来处理无法无限期处理的队列内容 .

相关问题