Created
November 11, 2019 20:08
-
-
Save andris9/ae3cc47eac12f8352909aa3ba7511010 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const dns = require('dns'); | |
// how many parallel "workers" to use | |
let batchSize = 3; | |
// domain list to process | |
let domains = [ | |
'neti.ee', | |
'hot.ee', | |
'zone.ee', | |
'telia.ee', | |
'delfi.ee', | |
'postimees.ee', | |
'nali.ee' | |
]; | |
// function that is called once all domains have been processed | |
let resolved = () => { | |
console.log('Kõik valmis'); | |
}; | |
// counter to see how many domains are currently pending resolve | |
let resolvePending = 0; | |
// "worker" function to resolve single domain name | |
let resolve = () => { | |
if (!domains.length) { | |
if (!resolvePending) { | |
// all processed | |
resolved(); | |
} | |
// some requests still pending, ignore | |
return; | |
} | |
let domain = domains.shift(); | |
resolvePending++; | |
dns.resolveAny(domain, (err, ret) => { | |
resolvePending--; | |
if (err) { | |
console.error(domain, err); | |
} else { | |
console.error(domain, ret); | |
} | |
// restart over with next domain name | |
resolve(); | |
}); | |
}; | |
// start "workers" | |
for (let i = 0; i < batchSize; i++) { | |
resolve(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment