amazon-web-services - 管理来自 AWS Lambda 函数的 API 请求中的空闲时间
问题描述
我正在尝试在 AWS Lambda 上构建一个聊天机器人。
但是,我 90% 的 Lambda 持续时间在请求等待时间中丢失。
对于用户与我的聊天机器人的每次交互,我发送大约 3 个请求(1 个到 Dialogflow,2 个到 Messenger)。我必须等到这些请求完成,因为:
- 对于 Dialogflow,我需要答案
- 对于 Messenger,我需要确保在发送下一条消息之前已经发送了上一条消息
对于对我的 Lambda 函数的每个 API 调用,请求大约需要花费400ms
我大部分时间等待的时间......
您对我如何避免每次等待 4000 毫秒有任何提示吗?也许我应该转向更常见的 ec2 实例。
我最初对无状态和 Lambda 真的很感兴趣,因为我认为它对聊天机器人很有意义,但是我在项目中添加的功能越多,我遇到的问题就越多(数据库连接真的很长......)
解决方案
听起来你大部分时间都被卡住了。也许您可以做的一件事是尝试并行进行尽可能多的异步调用。听起来您的流程目前是这样的:
Event -> Dialogflow -> Messenger -> Messenger -> Finish
您可以尝试组合其中一些调用并并行执行它们:
Event -> Messenger -> Messenger -> Finish
-> Dialogflow ->
推荐阅读
- flutter - Flutter 崩溃并给出奇怪的信息
- python - 我究竟做错了什么?我的代码告诉我猜测不正确,当它正确时
- java - 相同的查询方法不同的结果;如果对象(不完全)加载到内存中,springboot或hibernate可以阻止查询吗?
- python - 如何在 selenium 中使用 click() 进行循环?
- python - 创建一个 if 文件名是 .png 运行循环,如果 .jpg 忽略循环
- postgresql - 如何根据列数据为行设置通用ID
- javascript - 有什么方法可以删除我在 javascript 或 ES6 的嵌套 JSON 对象中得到的空值
- java - Hangman 游戏中的 ArrayIndexOutOfBoundsException 错误
- c# - 检查文本是否只有 ASCII 的验证规则
- android - 用于同步的空引用(monitor-enter)