Я создаю приложение, которое включает в себя запуск некоторых запаздывающих задач, то, как следующие:NodeJS приложение с большим количеством времени ожидания
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');
});
Вопрос: будет ли это влиять на производительность, если есть много таких задач? (несколько тысяч и более)
Есть ли лучший способ сделать это?
У меня есть ощущение, что вы должны использовать cron вместо этого - взгляните на https://www.npmjs.com/package/cron –
Возможно, вас беспокоит несколько непреднамеренных запросов. Современные браузеры могут получить доступ к '' '/ doit''' при наборе текста или если это закладка, например. для предварительной загрузки или аналогичных функций. Это приведет к многократной планировке вашей отложенной задачи. –
Я буду использовать пост-запросы с дополнительными данными, поэтому это не должно быть проблемой. app.get(); только, например. В любом случае, спасибо - я буду учитывать это в будущем :) – Viktor