首页 > 解决方案 > 如何按顺序从数组发送 API 请求

问题描述

情况:我有一个通过 Lambda 连接到 DynamoDB 数据库的 API。每个请求都会对数据库中的几条记录进行更改。因此,需要在将下一个请求发送到 API 之前完全完成每个请求。否则我会在数据库中得到不一致的数据。

我需要帮助的地方:鉴于我在数据库中有要请求的元素数组...

const requestArray = [123, 456, 567]

...并且我的代码与 API post 方法承诺的 await 一起工作...

async function databaseRequestExample (requestArray[x]){

     const result = await postAPIFunction(requestArray[x])

}

...我想知道如何处理数组一个又一个请求。所以通过array.map并发调用不是一个选项

谢谢

标签: javascriptamazon-dynamodb

解决方案


一种选择是将所有传入请求按顺序保存到 FIFO SQS 队列中。然后,您可以让 lambda 函数一次从队列中拉出一个请求,并将 lambda 函数的保留并发设置为 1。这将确保在任何给定时间最多有一个 lambda 函数正在查询/进行更改到 DynamoDB,它正在按顺序处理。


推荐阅读