在第一次调用Firebase函数时,我创建了一个mysql连接池(这是非常昂贵的),并将其存储在全局范围内。只要有一个示例为请求提供服务,这就可以正常工作。假设在负载下可以存在多个函数示例,那么如何避免创建大量这样的连接池呢?
s5a0g9ez1#
云函数文档中有一个特定的部分:“使用全局变量在将来的调用中重用对象”。无法保证云函数的状态会被保留以供将来调用。但是,云函数通常会回收以前调用的执行环境。如果您在全局范围内声明变量,则其值可以在以后的调用中重用,而不必重新计算。通过这种方式,您可以缓存在每次调用函数时重新创建可能会耗费大量资源的对象。
acruukt92#
云功能可扩展到每个区域1,000个示例。SQL连接可扩展到32,000多个。实际上,您不会遇到数据库连接的上限。
2条答案
按热度按时间s5a0g9ez1#
云函数文档中有一个特定的部分:“使用全局变量在将来的调用中重用对象”。
无法保证云函数的状态会被保留以供将来调用。但是,云函数通常会回收以前调用的执行环境。如果您在全局范围内声明变量,则其值可以在以后的调用中重用,而不必重新计算。
通过这种方式,您可以缓存在每次调用函数时重新创建可能会耗费大量资源的对象。
acruukt92#
云功能可扩展到每个区域1,000个示例。
SQL连接可扩展到32,000多个。
实际上,您不会遇到数据库连接的上限。