Большое количество запросов - Ошибка: getaddrinfo ENOTFOUND

При выполнении большого количества запросов в узле (используя версию 6.3.0, но это также происходило в других версиях), я получаю сообщение об ошибке getaddrinfo ENOTFOUND. Исследуя эту проблему, я обнаружил следующую проблему с github для более старых версий узла: https://github.com/nodejs/node-v0.x-archive/issues/5488 Однако я не смог найти решение в этом потоке.

Этот поток предоставил следующий пример кода: https://gist.github.com/eelcocramer/5626801

Суть состоит из трех файлов: error-case.js, fixed-error-case.js, а также success-case.js

Однако ни один из файлов не работает для меня без ошибок.

Бег error-case.js производит следующее:

...
Request count = 1569
STATUS: 200
Request count = 1570
problem with request: getaddrinfo ENOTFOUND www.google.com www.google.com:80
Last successful request count = 1570
problem with request: getaddrinfo ENOTFOUND www.google.com www.google.com:80
Last successful request count = 1570
...

Тем не менее, когда я бегу fixed-error-case.js Я получаю следующее:

...
Request count = 1562
STATUS: 200
Request count = 1563
problem with request: getaddrinfo ENOTFOUND www.google.com www.google.com:80
Last successful request count = 1563
problem with request: getaddrinfo ENOTFOUND www.google.com www.google.com:80
Last successful request count = 1563
...

И аналогично с success-case.js

Request count = 1563
STATUS: 200
Request count = 1564
problem with request: getaddrinfo ENOTFOUND www.google.com www.google.com:80
Last successful request count = 1564
problem with request: getaddrinfo ENOTFOUND www.google.com www.google.com:80
Last successful request count = 1564
^C

Но затем, что еще более примечательно, если я запустлю его снова (после>1 минуты ожидания), я получу следующее:

problem with request: getaddrinfo ENOTFOUND www.google.com www.google.com:80
Last successful request count = 0
problem with request: getaddrinfo ENOTFOUND www.google.com www.google.com:80
Last successful request count = 0
problem with request: getaddrinfo ENOTFOUND www.google.com www.google.com:80
Last successful request count = 0

Таким образом, ошибка, кажется, сохраняется через несколько прогонов, что интересно.

Кроме того, поскольку этот пример кода не совсем тот код, который я на самом деле выполняю, я должен также отметить, что я пытался использовать request-promise в сочетании с bluebird's map функция с concurrency так что одновременно действует так много обещаний, но это также не решило проблему. (Попытка выполнить ~300 запросов с параллелизмом, установленным на 5, все еще приводила к сбою)

Любая помощь / мысли будут оценены.

Спасибо

0 ответов

Другие вопросы по тегам