DB에서 상품 URL 8천 개쯤 뽑아서 각 페이지의 재고를 확인하는 스크립트를 짰어요. 빨리 끝내려고 Promise.all로 한 방에 다 돌렸는데, 처음 몇백 개는 되다가 그 뒤로 에러가 쏟아집니다.
Error: connect EMFILE ...
FetchError: request to https://... failed, reason: socket hang up
Error: getaddrinfo ENOTFOUND (간헐적)const results = await Promise.all(urls.map(u => fetch(u))) 이런 식으로 짰습니다. 8천 개를 동시에 여는 게 문제인 건 알겠는데, 그렇다고 for문으로 하나씩 순차 처리하면 너무 느려서요. 적당히 병렬로 돌리면서 안 터지게 하려면 어떻게 하나요?
댓글 0