文档中提到
函数是无状态的,执行环境通常是从头开始初始化的,这被称为冷启动。
此语句意味着*有时*,函数不是从scracth初始化的,并且状态可以重用。
这是一个可靠的假设吗?
插图
var count = 0; // global variable
functiion mycouldFunction(){
count ++;
return count;
}
如果我调用myCloudFunction
两次,间隔X时间,我应该期望它返回"1"然后返回"2"吗
然后在Y量时间后的第三次呼叫,我应该期望它再次返回"1"吗?
如果这是真的,那么X和Y的值是多少?
作为一种优化,云函数确实会有时重用服务器实例来处理多个请求。无法保证这种情况是否或何时会发生。除非您自己实现某种优化(例如内存缓存(,否则不建议在全局内存中存储任何内容,因为您的函数的任何一个调用都可能受到冷启动的影响。
myCloudFunction
时都会返回1。
为了实现您想要的目标,您需要将更新的值存储在Firestore或RTDB或类似的文件中,并在每次加载时读取更新的值。
什么";冷启动";指与上述内容无关,指的是如何服务功能。GCF将";关闭";不经常使用的功能,因此它们的响应可能比"正常"的功能慢;打开";并且准备接收请求。