文档中提到
函数是无状态的,执行环境通常是常 从头开始初始化,这称为冷启动。
此语句暗示* 有时 *,不是是从Scracth初始化的,并且可以重复使用状态。
这是一个可靠的假设吗?
var count = 0; // global variable
functiion mycouldFunction(){
count ++;
return count;
}
如果我两次呼叫myCloudFunction
并且相隔X倍的时间,我是否希望它返回“ 1”然后“ 2”
然后在Y量时间后进行第3次通话,我应该期望它再次返回“ 1”吗?
如果是这样,那么X和Y的值是多少?
答案 0 :(得分:1)
Cloud Functions确实会有时重用服务器实例来处理多个请求。无法保证是否或何时会发生这种情况。除非您自己实施某种优化(例如内存缓存),否则不建议在全局内存中存储任何内容,因为您的函数可能会因其任何调用而受到冷启动。
答案 1 :(得分:0)
否,云函数是无状态的,因此每次调用myCloudFunction
时,它将返回1。
要实现所需的功能,您需要将更新的值存储在Firestore或RTDB或类似数据库中,并在每次加载时读取更新的值。
“冷启动”指的与上述内容无关,它与功能的服务方式有关。 GCF将“关闭”不常用的功能,因此它们的响应速度可能比“打开”并准备接收请求的功能慢。