Vincent1
@Vincent1

Почему создание объекта JSDOM делает исполнение кода однопоточным?

Есть краулер, который работает в многоток как бешеный https://github.com/bda-research/node-crawler
Есть https://github.com/jsdom/jsdom
Как только в код ниже я добавляю строку var doc = new JSDOM(res.body); , то краулер волшебным образом начинает весьма не спешно, но уверенно работать в 1 поток.
Как изменить код так, чтобы создание объекта JSDOM не задерживало выполнение?
const Crawler = require('crawler');
var { JSDOM } = require('jsdom');

const c = new Crawler({
	maxConnections: 100,
    callback: (err, res, done) => {
        console.log(res.$('title').text());
        var doc = new JSDOM(res.body); // превращает выполнение кода в 1 поток
        done();
    }
});

// Queue just one URL, with default callback
c.queue('http://www.amazon.com');

С JS и node знаком постольку-поскольку
  • Вопрос задан
  • 32 просмотра
Пригласить эксперта
Ответы на вопрос 1
Lynn
@Lynn
nginx, js, css
Подозреваю что JSDOM это очень ресурсоёмкая скрипт и он банально занимает кучу времени.

А исполнение кода у вас и так однопоточное.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы