我已经设置了一个S3存储桶来将PUT对象上的事件发送到SQS,我正在处理EB工作层中的SQS队列.
SQS发送的消息的架构如下:http://docs.aws.amazon.com/AmazonS3/latest/dev/notification-content-structure.html
记录是一个数组,意味着可以在一个POST中将多个记录发送到我的工作人员的端点.这实际发生了吗?或者我的工作人员每封邮件只会收到一条记录吗?
无论收到的消息中有多少记录,工作者只能返回一个响应,200(成功处理消息)或非200(消息未成功处理,将其重新放入队列).
因此,如果我的工作人员在一条消息中收到多条记录,并且它成功地处理了一些(例如通过插入数据库等副作用)但是在一个或多个上失败,我应该如何处理?如果我返回200,那么失败的那些将不会被重试.但是如果我返回非200,那么成功处理的那些将被不必要地重试,并且可能重新插入.因此,我必须让我的工作人员足够聪明,只能重试失败的 - 这是我不想写的逻辑.
如果每封邮件只发送一条记录,这将更容易.所以,如果实际情况如此,尽管记录是阵列,我真的很想知道!