如何在Firebase Cloud Functions上拆分较长执行时间的函数

时间:2019-09-12 03:10:58

标签: typescript firebase google-cloud-functions

假设我具有函数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监听该值更改。但我想知道是否有一种更清洁的方法来实现这一点。

1 个答案:

答案 0 :(得分:0)

您可以延长Cloud Functions的超时时间。默认的1分钟可以延长到9分钟。请read the documentation

如果您需要9分钟以上的时间,则需要考虑将工作委派给没有严格限制的服务,例如App Engine或Compute Engine。但是无法更改Cloud Functions的9分钟限制。