maximkv25
@maximkv25
web-developer

Как в node js выполнить одновременно 500 запросов?

Можно ли в node js запустить параллельно 50 функций, но с небольшим интервалом которые будут производить запросы?

Например есть ф-ция
function getStatistic() {
	request.get({
		url: 'http://*******/api/v1/statistics',
		time: true
	}, function (err, response, body){
		console.log('Request time in ms', response.elapsedTime);
		console.log('Request status code', response.statusCode);
		var info = JSON.parse(body);
		console.log('Request body ', info);
	});

}


Нужно выполнять ее с интервалом в диапазоне 100-500 мс, getStatistic будет содержать до 50 запросов.
Так же будет логирование, чтобы не блокировалось выполнение.
Подскажите, как правильно организовать?
  • Вопрос задан
  • 224 просмотра
Решения вопроса 1
yellow79
@yellow79
Senior Software Engineer
Я бы использовал библиотеку async, там есть много интересного, но именно вам должно помочь это https://caolan.github.io/async/docs.html#times
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
day90
@day90
Здесь можно поступить таким способом:
Использовать setInterval. В котором считать каждое выполнение и по достижению 500 делать clearInterval.

Вы сможете сделать временной интервал и ограничить количество запросов. Если будут сложности пишите, набросаю пример.
Ответ написан
mak_ufo
@mak_ufo
Возможно, стоит взять kue. Там можно ограничить число параллельных задач. Либо найти библиотеку, которая реализует возможности семафоров
Ответ написан
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы