Amazon SQS消息队列

时间:2012-07-04 14:40:31

标签: amazon-web-services amazon-sqs

我有以下情况:

  • 对于需要处理的作业,包含作业说明的消息将发送到Amazon SQS消息队列
  • 我有不同的流程需要做这些工作

需要满足以下条件:

  1. 如果一个进程无法完成作业(可能是因为它在崩溃时运行的服务器),则该作业必须再次可用于其他进程。
  2. 当正在处理一项工作时,具有相同描述的其他工作必须等到第一份工作完成或达到超时。
  3. 系统应根据消息队列长度轻松扩展。
  4. 为确保(1),我的第一个想法是使用Amazon SQS队列提供的消息锁定功能,但我如何确保(2)呢?将流程分配给职位描述是一种选择,但是(3)将更加困难。

1 个答案:

答案 0 :(得分:1)

设置更长的“VisibilityTimeout”值。确保此值的长度超过完成作业所需的时间。

如果接收此作业的计算机无法完成(或未能及时完成),则该消息将再次可供新计算机处理。

这解决了#1和#2。

对于#3,我相信您可以根据SQS队列的大小设置自动缩放触发器,因此如果您有更多消息,AWS将自动启动新实例来处理它们。