我有两个API,第一个是启动setInterval,第二个是clearInterval。当然第二个API不起作用,但如何使其工作?据我所知,没有全局变量我可以分配setInterval。有任何想法吗?
let glob = 0;
let timer = null;
exports.start = functions.https.onRequest((req, res) => {
if(timer){
}else {
queueFunction();
}
res.status(status).send(mes);
});
});
exports.stop= functions.https.onRequest((req, res) => {
if(timer){
clearInterval(timer);
}else {
}
res.status(status).send(mes);
});
});
function queueFunction() {
timer = setInterval(timerFunc, 3000);
}
function timerFunc(){
glob++;
}
答案 0 :(得分:2)
你想要做的是不可能的。每个函数都在完全隔离的服务器实例中运行。他们对彼此一无所知,也没有共享状态。
此外,在HTTP函数发送响应后,它会被有效终止并清除。在函数终止后,您无法在该服务器实例中继续进行工作。
如果需要在函数中保留某些状态,则应使用实时数据库或Firestore等存储机制。如果在函数终止后需要工作似乎继续,则必须启动另一个函数,通常是通过pub / sub。或者您可以委托给另一个服务器实例,例如App Engine。