3 回答


TA贡献1806条经验 获得超5个赞
我们可以批量发送 10 个。工作代码:
List<SendMessageBatchRequestEntry> sqsList= new LinkedList<SendMessageBatchRequestEntry>();
int batchId = 1; //To send a unique batchId for each msg in a batch
for (Metadata metadata: metadataList) {
String jsonString = new Gson().toJson(metadata);
if (sqsList.size() == 10) {
amazonSqs.sendMessageBatch(new SendMessageBatchRequest(queueUrl, sqsList));
sqsList.clear();
}
sqsList.add(new SendMessageBatchRequestEntry(batchId + "", jsonString));
batchId++;
}
if(sqsList.size()>0) {
amazonSqs.sendMessageBatch(new SendMessageBatchRequest(queueUrl, sqsList));
}

TA贡献1780条经验 获得超4个赞
似乎您的代码很好,据我记得(我自己已经多次看到此错误),由于 SDK 如何重用 HTTP 连接,在使用 SDK 时会不时发生这种情况。此错误仅告诉您您的 Lambda 重置了 HTTP 连接,但 SDK 具有内置功能以重试失败的请求,因此如果您在每个请求上都没有看到此错误,您应该没问题。
添加回答
举报