AWS-SDK:SQS如何识别BatchDeleteOperation中未删除的邮件
问题描述:
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。AWS-SDK:SQS如何识别BatchDeleteOperation中未删除的邮件
如果发生错误或某些消息没有从队列中删除,err是否将包含MessageId的批次删除失败?
答
如果执行批量删除时部分成功,服务将返回200 OK,并且响应对象将具有两个字段“成功”和“失败”。
失败将具有包含消息ID和失败原因的“BatchResultErrorEntry”类型对象的列表。
如何创建部分成功的方案并对其进行测试? –
尝试在批量删除请求中发送无效的信息。 – Shibashis