Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 如何在Firebase云函数上拆分长执行时间函数_Typescript_Firebase_Google Cloud Functions - Fatal编程技术网

Typescript 如何在Firebase云函数上拆分长执行时间函数

Typescript 如何在Firebase云函数上拆分长执行时间函数,typescript,firebase,google-cloud-functions,Typescript,Firebase,Google Cloud Functions,假设我有函数A、B、C、D,它们都没有超过Firebase云函数的执行时间限制。但是如果在函数A的末尾调用函数B,在函数B的末尾调用函数C。。。以此类推,如下所示: function A(): Promise { doStuffA() return httpPostFunctionB() } function B(): Promise { doStuffB() return httpPostFunctionC() } function C(): Promise

假设我有函数A、B、C、D,它们都没有超过Firebase云函数的执行时间限制。但是如果在函数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分钟可延长至9分钟。请考虑一下


如果您需要超过9分钟,您需要考虑将工作委托给没有严格限制的服务,例如App Engine或CealEngine。但是云函数的9分钟限制不能更改。

听起来函数B实际上只需要等到A完成后,如果它需要处理结果的话。我不知道你为什么提议让它们并行运行,让B“听”A的结果。想法是它们是一个大功能的4个部分,我把它们分成4个不同的部分,这样每个部分都不会超过时间限制。A()的结果只是我用来触发B()的一个伪变量。否则我不知道如何在A()完成()后触发B(),而不让A()等待B()并超过时间限制。时间限制是多少?如果您需要的处理时间超过云功能所允许的时间,那么该产品可能不适合您。也许App Engine或Compute Engine会更好,因为它们可以处理无实时限制的批处理作业。我可以将最重要的部分转移到Compute Engine,但因为我需要Firebase身份验证功能,所以API仍然需要是云函数。当API等待计算引擎响应时。它将超过云功能的时间限制。再说一次,时间限制是多少?你到底想完成什么?