deleteMessagesParams := &sqs.DeleteMessageBatchInput{
Entries: messagesToDelete, // array of type *sqs.DeleteMessageBatchRequestEntry
QueueUrl: aws.String(QUEUE_URL),
}
if resp , err := svc.DeleteMessageBatch(deleteMessagesParams); err != nil {
log.Println("Batch Delete Failed: ", err.Error())
}else{
log.Println("Batch Delete Successful: ", resp)
}
我在SQS中使用批量删除。批量删除操作成功后,resp包含删除成功的MessageId消息。
如果出现错误或某些消息未从队列中删除,错误是否包含批处理删除失败的MessageId?
答案 0 :(得分:1)
如果在执行批量删除时部分成功,则服务将返回200 ok,响应对象将有两个字段Successful和Failed。
失败将包含“BatchResultErrorEntry”类型的对象,其中包含消息ID和失败原因。
答案 1 :(得分:1)
您可以使用DeleteMessageBatchResult.getFailed()
方法调用获取所有失败邮件的列表。