1

当我出于某种原因从 Cloud Run 实例调用其他云 API 时,响应会出现巨大延迟。一切都在 1 个项目中运行。即使从本地机器调用也更快(几秒钟) - 但部署在云中,一些请求需要几分钟才能完成。正如我所见,它与所有 API 相关(除了 Firestore、Translate 和 TTS API)。这肯定与冷启动无关。

代码示例(Node JS)和日志如下:

console.log('Received the request for stats');
const usersCollection = this.firestore.collection('users')
const snapshot = await this.usersCollection.get();
console.log('Fetched all users from Firestore');

来自 Cloud Run 控制台的日志

4

1 回答 1

1

好吧,经过进一步调查,我发现了问题所在。问题是我执行的所有操作都不是在发送响应之前而是在之后(这是聊天机器人的架构方式)。所以流程看起来像这样:

  1. request to do smth - 请求被接受的响应 200
  2. 所有的业务逻辑和工作
  3. 聊天机器人发送带有结果的消息

根据文档,默认情况下仅在请求处理期间分配 CPU,因此我唯一需要更改的是为后台活动启用 CPU 分配:https ://cloud.google.com/run/docs/tips/general#背景活动

于 2021-10-26T17:13:11.217 回答