Javascript 一个节点应用程序可以处理多少个setInterval()函数?
我正在创建一个节点应用程序,对于每个请求,我都会定期调用一个函数 app.js 每当有人请求应用程序时,我每30分钟调用一次ping功能 节点应用程序是否可以处理更多的设置间隔 使用setTimeout而不是setInterval好吗 一个节点应用程序可以处理多少个setInterval函数 nodejs设计用于处理大量计时器,至少数十万个 因此,少量的setInterval计时器是完全可以使用的。但是,在我看来,添加一个新的时间间隔,使其在每次遇到路由时永远运行似乎是一个错误,因为它们将无限期地累积,直到服务器重新启动 如果您更详细地描述您真正想要解决的问题,我们可以帮助您找到一种合适的方法来编写代码。你现在所拥有的,只是一次又一次地运行一个请求,并没有做任何有结果的事情,每次你的路线再次被击中,它就会重新开始运行整个过程,因此你有多个它的实例一次又一次地运行。那看起来像是个错误的设计 下面是另一个答案,它指向有关如何在nodejs中设计计时器的信息: 使用setTimeout而不是setInterval好吗Javascript 一个节点应用程序可以处理多少个setInterval()函数?,javascript,node.js,settimeout,setinterval,Javascript,Node.js,Settimeout,Setinterval,我正在创建一个节点应用程序,对于每个请求,我都会定期调用一个函数 app.js 每当有人请求应用程序时,我每30分钟调用一次ping功能 节点应用程序是否可以处理更多的设置间隔 使用setTimeout而不是setInterval好吗 一个节点应用程序可以处理多少个setInterval函数 nodejs设计用于处理大量计时器,至少数十万个 因此,少量的setInterval计时器是完全可以使用的。但是,在我看来,添加一个新的时间间隔,使其在每次遇到路由时永远运行似乎是一个错误,因为它们将无限期
这两种方式都不会改变您的可伸缩性。使用重复setTimeout和setInterval有不同的设计原因,但都不会改变您的核心问题。您可能正在寻找。@GaNeShKuMaRm-这回答了您的问题吗?
var express = require('express');
var request = require('request');
var bodyParser = require('body-parser');
var app = express();
const PORT = process.env.port || 1234
app.listen(PORT, () => { console.log(`Server running at ${PORT} ...`)} );
var router = express.Router();
function ping(i, appURL)
{
request(appURL, function (error, response, body) {
console.log('i:', i ++ ,'url: ', appURL, 'statusCode:', response && response.statusCode, 'Time: ', new Date());
});
}
router.route('/')
.post(function(req, res) {
var appURL = req.body.url;
var i = 1;
ping(i, appURL);
setInterval(function() {
request(appURL, function (error, response, body) {
ping(i, appURL);
});
}, 1800000);
res.end('Success');
});
app.use(bodyParser.json());
app.use('/', router);