在Cloud Functions中使用setTimeout可以吗?

时间:2018-08-05 15:51:28

标签: firebase google-cloud-functions

我想知道在Firebase Cloud Functions中使用setTimeout是否可以?我的意思是说它在本地为我工作,但它有一个非常奇怪的行为:超时功能的执行无法预测。

示例:我将超时设置为5分钟。所以5分钟后执行我的回调。在大多数情况下,它都能正确执行此操作,但有时回调执行的时间要晚于5分钟。

但这只是在我的本地计算机上执行。将功能部署到Firebase时也会发生这种情况吗?

1 个答案:

答案 0 :(得分:1)

Cloud Functions具有最大运行时间,在time limits中有记录。如果您的超时在该时间限制到期后进行回调,则该函数可能已经终止。到期时间的发生方式在本地仿真器和托管环境之间可能会有所不同。

通常,我建议不要使用超过几秒钟的setTimeout。在Cloud Functions中,只要您的功能处于活动状态,就会向您收费。如果您有setTimeout几分钟的时间,那么即使在这段时间里,即使您所有的代码都在等待时钟到期,您仍要为此付费。查看您正在等待的服务是否能够调用网络挂钩或use a cron-job来检查其是否完成