我创建的应用程序涉及运行一些延迟的任务,如下所示:
app.get('/doit', function(req, res) {
var timeout = 1000*60*60*8; // timeout between 1 hour and several days
var task=setTimeout(function(){
console.log('doing delayed task...');
},timeout);
res.render('index.ejs');
});
问题是:如果有很多这样的任务会影响绩效吗? (几千甚至更多)
有更好的方法吗?
答案 0 :(得分:3)
nodejs是基于事件的,因此您不必担心它。
答案 1 :(得分:0)
它不太可能导致任何重大性能问题,除非这些任务的数量确实很高,但无论如何都会出现性能问题。更好地解决问题取决于你想要实现的目标。如果您能提供一些细节,将会有所帮助。
如果您想定期运行任务,最好使用cron 如果你只是在等待某个事件发生,那么我建议你使用node events。无论如何,仍然有很多东西,其中setTimeout仍然是最好的解决方案,在这种情况下,请继续使用它。