2

I am trying to make huge number of requests to https://maps.googleapis.com/maps/api/place/queryautocomplete/json.

Basically I am taking some list of strings from many files and trying to make a request to the above api. If I run with 100 strings it is working fine but if the number is increased then it is returning this error.

    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:56:26)
  errno: 'ENOTFOUND',
  code: 'ENOTFOUND',
  syscall: 'getaddrinfo',
  hostname: 'maps.googleapis.com',
  host: 'maps.googleapis.com',
  port: 443,
  config:
   { url:
      'https://maps.googleapis.com/maps/api/place/queryautocomplete/json?language=en&key=<api_key>&input=kakanipalem+andhra+pradesh+india',
     method: 'get',
     headers:
      { Accept: 'application/json, text/plain, */*',
        'User-Agent': 'axios/0.19.2' },
     transformRequest: [ [Function: transformRequest] ],
     transformResponse: [ [Function: transformResponse] ],
     timeout: 10000,
     adapter: [Function: httpAdapter],
     xsrfCookieName: 'XSRF-TOKEN',
     xsrfHeaderName: 'X-XSRF-TOKEN',
     maxContentLength: -1,
     validateStatus: [Function: validateStatus],
     data: undefined }

Initially I used Promise.all like

let results = [];
for(let i=0;i<inputStrings.length;i++){
  let url = `https://maps.googleapis.com/maps/api/place/queryautocomplete/json?language=en&key=<api_key>&input=${inputStrings[i]}+andhra+pradesh+india`;
  results.push(axios.get(url))
}
Promise.all(results).then((refinedResults)=>{
//console.log(refinedResults);
}).catch(e=>console.log(e);)

Later, I thought of making two requests concurrently.

For handling this I am trying to make only 2 requests concurrently using axios. The sample code is:

const cleanInput = async (inputStrings, field) => {
    let results = [];
    try {
        let count = 0;
        let run = 0;
        let requiredResults = [];
        let index = 0;
        while (count < fieldNames.length && run <= 2) {
            let tempIndex = 0;
            if (results.length < 2) {
                console.log("pushing", count);
                let url = `https://maps.googleapis.com/maps/api/place/queryautocomplete/json?language=en&key=<api_key>&input=${inputStrings[index + tempIndex]}+andhra+pradesh+india`;
                results.push(axios.get(url));
                run += 1;
                tempIndex++;
            } else {
                let responses = await axios.all(results);
                // results = 0;
                run -= results.length;
                count += results.length;
                results = [];
                // perform some operation on responses array
            }

        }
    } catch (e) {
        console.log(e);
    }
}

I want to know if there is any modification that I can do in the above code so that I can overcome the issue?

Also I want to know which approach is better for successfully getting the results or is there any other better approach other than the above two?

EDIT 2:

I am using the following api. The input query parameter is taken from a huge file which has all the input words. This process is repeated for multiple files.

https://maps.googleapis.com/maps/api/place/queryautocomplete/json?language=en&key=<api_key>&input=hyderabad

My test file will be like

addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag
addanki
adoni
kalyanadurg
hyderabad
vizag

So for example if my total number of files = 10, in each file number of string = 1500, so I am taking one file, and for each input(total of 1500 inputs in file) I am making an api call. (It is repeated for all the 10 files.)

Sm Srikanth
  • 1,992
  • 1
  • 10
  • 10
  • In addition to the question yours is marked a dup of, here are some other relevant ones: [Calling too many promises at once](https://stackoverflow.com/questions/60481903/memory-leak-when-calling-too-many-promises-in-nodejs-request-mongodb/60483275#60483275), [Waiting for some requests to finish before starting others](https://stackoverflow.com/questions/60443116/waiting-for-web-worker-making-http-call-to-finish/60443348#60443348), [Promise.all() consumes all my resources](https://stackoverflow.com/questions/46654265/promise-all-consumes-all-my-ram/46654592#46654592). – jfriend00 Mar 31 '20 at 08:20
  • @jfriend00 I have tried with the first and second links, but I am still getting getaddrinfo enotfound maps.google.com port:443 error. – Sm Srikanth Apr 01 '20 at 03:34
  • I don't know. If you're really using the code I've linked and running no more than 10 concurrent requests, then I can't explain it. My best guess would be that Google is rate limiting you because of too many requests, too quickly. But, I don't know why that would show up as a DNS error unless your ISP is rate limiting you on DNS requests. To debug any further, I would need to have runnable code/data that I could try myself. I've reopened it (not marked as a dup any more). – jfriend00 Apr 01 '20 at 04:29
  • @jfriend00 I cannot share you the code but I will give some test data on which I am running the code. I edited the question with sample data. – Sm Srikanth Apr 01 '20 at 05:06
  • which version of node you are using ? – PRAJIN PRAKASH Apr 01 '20 at 05:08
  • node version 10.19.0 – Sm Srikanth Apr 01 '20 at 05:10
  • please check [this](https://stackoverflow.com/questions/46692267/getaddrinfo-enotfound-api-google-cloud), And the free usage is limited to 10000. – PRAJIN PRAKASH Apr 01 '20 at 05:18
  • billing is already enabled for the api. – Sm Srikanth Apr 01 '20 at 05:23

1 Answers1

0

Problem may be due to the following reason

  1. ENOTFOUND error will occurs due to an unstable network connection, Please check your connection is stable and DNS works properly, You can go to the network tab of browser to check any ENOTFOUND error occurring while browsing through some website.If the error occurs please try to update your DNS.

  2. Due to Quota limited there some limit to the requests.Please check your Quota.

    enter image description here

PRAJIN PRAKASH
  • 1,366
  • 1
  • 15
  • 31