javascript - 如何按顺序从数组发送 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并发调用不是一个选项。
谢谢
解决方案
一种选择是将所有传入请求按顺序保存到 FIFO SQS 队列中。然后,您可以让 lambda 函数一次从队列中拉出一个请求,并将 lambda 函数的保留并发设置为 1。这将确保在任何给定时间最多有一个 lambda 函数正在查询/进行更改到 DynamoDB,它正在按顺序处理。
推荐阅读
- python - Python Pygame 文本每次叠加打印在自身之上
- java - 如何禁用 Spring AOP 事务支持?
- angular - 错误:formGroup 需要一个 FormGroup 实例。请传入一个。使用示例代码仍然出现错误
- java - Spring bean destroy 方法作为非类方法
- python - 树莓派上的python3.5
- c# - C# - 不能在派生类构造函数中设置只读属性和字段
- node.js - Firebase 管理员 SDK getaddrinfo ENOTFOUND metadata.google.internal。错误代码:ENOTFOUND"
- python - pytorch 中的前向传递和推理有何不同?
- python - Python - 时间单位转换的最佳实践
- sql - Netezza 存储过程中使用字符串的多行语句