@zevem
Стрелец

Как в puppeteer на node.js контролировать асинхронные запросы?

Node js больше 11 запросов выдает ошибку, т.к. там лимит 11 стоит по умолчанию.
Как убрать лимит знаю, вопрос в другом, как отправлять запросы по 10 штук, чтобы сначала отработать эти 10 запросов, а потом по завершению приступить к следующим.

Мой код такой

let images = [1,2,3,4,5,6,7,8,9,10,11,12];

var t = 0;

while(images.length > t) {

	function parsing(url){ 

		(async () => {
			const browser = await puppeteer.launch();
			const page = await browser.newPage();
			await page.goto(url);
			await page.content();
			await browser.close();
			console.log("Готово"); 
		})();

	}

	const url = 'https://www.google.com/';

	parsing(url);

	t++;
}
  • Вопрос задан
  • 47 просмотров
Пригласить эксперта
Ответы на вопрос 1
@d-sem
Надежнее и быстрее - поднять какую-нибудь очередь. А ля rabbitmq. И из нее брать 10ю запущенными воркерами задания в виде url'ов по мере освобождения каждого воркера (а не ожидать самого долгого запроса). https://www.rabbitmq.com/tutorials/tutorial-one-ja...

Если хочется решать в коде - то оформляйте в цикл/"рекурсию" из параллельных промисов https://developer.mozilla.org/ru/docs/Web/JavaScri...
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
01 дек. 2020, в 23:18
80000 руб./за проект
01 дек. 2020, в 22:41
60000 руб./за проект
01 дек. 2020, в 21:24
500 руб./за проект