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

时间:2017-04-23 17:29:24

标签: amazon-web-services amazon-sqs

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

  • 当新消息添加到队列时,只有收到该消息的第一个客户端才会开始工作
  • 对于其他人,该消息将在一段时间内不可见

是否可以使用“可见性超时”执行此操作?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

没有其他方法可以“锁定”消息,除了设置长$("table tr>td.left>a").each(function (index, item) { console.log($(item).html()); }); ,最长12小时超时。

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