3 回答

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超7個贊
每個批次的最大消息數(shù)為 10。您不能一次用 20k 填充 SQS 隊列并發(fā)送該請求。試著把它分成10個。

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個贊
我們可以批量發(fā)送 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貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個贊
似乎您的代碼很好,據(jù)我記得(我自己已經(jīng)多次看到此錯誤),由于 SDK 如何重用 HTTP 連接,在使用 SDK 時會不時發(fā)生這種情況。此錯誤僅告訴您您的 Lambda 重置了 HTTP 連接,但 SDK 具有內(nèi)置功能以重試失敗的請求,因此如果您在每個請求上都沒有看到此錯誤,您應(yīng)該沒問題。
添加回答
舉報