【发布时间】:2021-06-02 13:44:04
【问题描述】:
我有一个每天作为 cron 作业运行的云功能,它为我们的每个用户创建一个每日统计文档。现在的问题是,随着我们拥有的用户数量,该功能正在超时,因此无法为我们的每个用户创建所需的文档。
功能很简单:
export const createDailyStatsDocument = runWith({timeoutSeconds: 540}).https.onRequest((req, res) => {
corsHandler(req, res, async () => {
try {
const users = await db.collection('users').get();
for (const userDoc of users.docs) {
const data = {
uid: userDoc.uid,
test: 'test'
}
const statsRef = await createStatsDoc(data)
}
return res.status(200).send({message: 'Successfully created all users documents'});
} catch (e) {
console.log({e});
return _handleError(res, e.status, e.message);
}
})
});
我已将函数超时增加到 Firestore 允许的最大值,但仍然遇到同样的问题。有没有人解决如何增加这些函数的超时时间,或者以某种方式为在单独实例中运行的每个循环迭代触发另一个函数,因此不影响这个超时时间?
【问题讨论】:
标签: javascript node.js http google-cloud-firestore google-cloud-functions