关闭谷歌云功能端的 redis 连接



当云函数实例终止时,如何关闭从云函数到Redis 内存存储的连接?(我相信要关闭我需要调用 redis.quit(),但我不知道什么时候,而且我无法在函数返回后立即关闭它们,因为函数实例可以重用)

因为我只是让连接保持打开状态,所以现在我收到"ECONNRESET"错误。

或者,如果无法实现这样的事情:

process.on("exit", function(){//also process is not defined in cloud functions
redisClient.quit();
});

在redis 配置中指定超时的最佳选择是什么?(如何在 gcp 内存存储中执行此操作?

当您的云函数入口函数返回时,您的容器有资格被终止,恕不另行通知。

您有两种选择:

  • 在每次函数调用时打开和关闭连接
  • 使用连接池并管理与云函数的预期用途背道而驰的连接错误。

如果您的函数使容器保持温暖,则具有错误处理的连接池"可能"具有好处,而错误处理和测试所有可能的问题的成本不小。云函数应用应设计为"无状态"。尝试在 Cloud Functions 中的调用之间保持状态(连接、数据等)不是一个好的策略。

我会使用选项 #1 设计我的系统。云功能是"轻量级"的,这意味着启动,快速完成任务并关闭。

最新更新