Firebase函数批处理/时间限制



我使用Firebase Functions,我有一个pubsub函数,每天晚上运行。此函数负责对每个用户的帐户进行一些处理(例如为他们准备第二天的一些数据并向他们发送电子邮件)。

我遇到的问题是,一个函数可以运行多长时间是有时间限制的,对于事件驱动的函数,是10分钟。https://firebase.google.com/docs/functions/quotas: ~:文本= % 20限制,-Quota&文本= 20分钟% 20 60% % 20 http % 20功能,20分钟% % 20事件% 2 ddriven % 20功能。

现在我的用户数量已经显著增加,这个限制不再足以完成所有用户的工作。

为了帮助解决这个问题,我创建了一个firestore.onWrite事件函数,它在编写某个文档时触发。现在,当我的pubsub函数运行时,它将写入firestore中的文档,然后触发我的onWrite函数运行。这似乎使我能够处理比以前更多的用户,然而,1)这感觉不对,2)这仍然不够,因为我也遇到了编写文档的速率限制,我就是不能在允许的时间限制内压缩所有用户。

在Firebase生态系统中进行夜间批处理(在用户帐户上)的正确方法是什么?

正如您正确指出并在文档中提到的那样,对于事件驱动的函数,在强制终止函数之前可以运行的最长时间为10分钟。

然而,为了规避这个限制,我找到了另一个有类似问题的人的SO帖子。大多数的建议是批处理到500个以下,然后提交。

在这里,看看这里的解决方案。

希望对你有帮助。

最新更新