我已将此应用程序部署到heroku,用户ID与api请求一起发送,但是它并没有按我希望的那样工作,在第一次尝试时它就起作用了,并且该功能对于正确的用户停止了,但是在测试时通过一些硬性设置,例如更改浏览器,IP地址,设备等。我得到了随机结果。应用程序崩溃,有时只是无法清除间隔。
不确定如何解释该问题,但我的目标是从前端控制节点服务器(我也在使用react和JS),后端需要无限期地运行,所以也许是因为heroku的东西睡着了,但是即使在30分钟之前,我仍然出现错误,用户可以在应用程序上通过单击按钮来运行和停止该功能,结果是某些用户连接到其他位置,并且不确定是什么导致该错误发生。
如果您需要更多信息,请让我知道,下面的代码是为了简化起见,真实函数获取网站屏幕快照,上传imgur图像,然后更新firebase数据库,所有操作都是异步的,没有回调。 / p>
const express = require('express')
const app = express()
const port = 1403
let timers = {};
app.get('/api/v1/:user/', (request, response) => {
var user = request.params.user;
if (request.query.running === 'false') {
clearInterval(timers[user]);
console.log("Thread stopped for "
+ user);
} else {
console.log("Thread started for "
+ user);
timers[user] = setInterval(
function apiCall() {
console.log("api called - thread running for "
+ user);
}, 5000);
}
response.sendStatus(200);
})
app.listen(port, () => console.log(`App running on port ${port}!`))