Firebase功能间隔10分钟停止



我在firebase函数上有一个定时器函数。

下面的代码

exports.timecontroller = functions.region('europe-west1').firestore.document("DigitalTargets/{digitalTargetID}").onCreate((snap, context) => {
const id = snap.id
const date = new Date(snap.data().endDate.toDate())
var countDownDate = date.getTime();
var myfunc = setInterval(async function () {
var now = new Date().getTime();
var timeleft = countDownDate - now;
db.collection('DigitalTargets').doc(snap.id).get().then(a => {
if (!a.data().isClaimed) {
console.log(timeleft)
if (timeleft < 0) {
db.collection("DigitalTargets").doc(id).update({ isActive: false })
clearInterval(myfunc);
}
}
else {
clearInterval(myfunc);
}
})

}, 1000);
return true;
})

我的问题是,当我创建一个文档,它开始计数。我可以在日志屏幕上看到。但10分钟后就停止工作了。没有显示更多的日志。过期后它不会停用doc

我需要什么:我在地图上标出目标,他们有结束时间。我只是想在计时器完成后设置活动false。

对firebase函数有任何限制吗?如果有的话,我会用定时功能每5分钟检查一次。

From the docs:

The maximum value for timeoutSeconds is 540, or 9 minutes.

https://firebase.google.com/docs/functions/manage-functions

如前所述,您可以使用调度函数:
exports.myCrontabFunction = functions.pubsub.schedule("every 5 minutes")
.timeZone("Europe/Berlin")
.onRun(async (context) => { ... } );

听起来你正在使用一个事件驱动函数,当你创建一个文档时开始。

根据这个公共文档,你可以看到即使驱动函数在10分钟后超时。

另一种选择可能是让事件驱动的函数在60分钟以外的时间内向另一个函数发出http请求。

相关内容

  • 没有找到相关文章

最新更新