假设我具有函数A,B,C,D,它们都没有超过Firebase Cloud Functions的执行时间。但是,如果在函数A的末尾调用函数B,在函数B的末尾调用函数C ...依此类推,如下所示:
function A(): Promise {
doStuffA()
return httpPostFunctionB()
}
function B(): Promise {
doStuffB()
return httpPostFunctionC()
}
function C(): Promise {
doStuffC()
return httpPostFunctionD()
}
function D() {
doStuffD()
}
总共将超过时间限制。
有没有什么方法可以使函数A不必等待函数B,还可以保证函数B将完全执行?
我认为有可能,我们可以使功能A在Firestore中修改一些值,并使功能B监听该值更改。但我想知道是否有一种更清洁的方法来实现这一点。
答案 0 :(得分:0)
您可以延长Cloud Functions的超时时间。默认的1分钟可以延长到9分钟。请read the documentation。
如果您需要9分钟以上的时间,则需要考虑将工作委派给没有严格限制的服务,例如App Engine或Compute Engine。但是无法更改Cloud Functions的9分钟限制。