В общем то в ноде я новичёк и сразу же наступил на грабли обработки большой кучи данных... В общем то пишу парсер нескольких сайтов (на данный момент их 12). Посылается запрос на сервер через сокеты. Там каждый сайт обрабатывается.
Обработка сайта происходит следующем образом (в целом почти одинакова для каждого сайта): парсится первая страничка поиска, далее обрабатываются блоки из поиска, из них получаем ссылки на полное описание, подгружаем описание, из страниц описания переходим на страницу описания автора - всё это собираем и отправляем пользователю. Так же не забываем что там может быть не одна страница в поиске и следовательно повторяем операцию на следующих страницах. И так для 12 сайтов.
Выглядит примерно так:
selected_sites.forEach(function(site_name) {
var site = new sites[site_name];
site.on('found', function(data) {
socket.emit('found', data);
});
site.on('not_found', function() {
socket.emit('not_found', 'Nothing found at ' + site.getSiteName());
delete site;
});
site.search(socket_data.params);
});
Так вот если я открываю несколько вкладок и жмякаю разные запросы - мне приходиться ждать пока определённые запросы спарсятся у того, кто нажал первым...
В общем то отсюда и вопрос - как ускорить весь этот процесс дабы остальным пользователям не ждать...