Skip to content

Instantly share code, notes, and snippets.

@freeart
Created April 25, 2017 13:37
Show Gist options
  • Save freeart/2533fe9f8f966881e3055f37d8f4f0f1 to your computer and use it in GitHub Desktop.
Save freeart/2533fe9f8f966881e3055f37d8f4f0f1 to your computer and use it in GitHub Desktop.
var cluster = require('cluster');
var ping = require('ping');
var async = require('async');
var randomstring = require("randomstring");
var jsonfile = require('jsonfile')
var worker;
if (cluster.isMaster) {
let file = './dict.json'
let nums;
let eod = false;
let current = 0;
jsonfile.readFile(file, function(err, obj) {
nums = obj || {};
start();
})
function start() {
setTimeout(function again() {
jsonfile.writeFile(file, nums, function (err) {
if (!eod) {
setTimeout(again, 60 * 1000);
}
})
}, 10 * 1000);
for (let i = 0; i < 8; i++) {
worker = cluster.fork();
worker.on('message', function (msg) {
if (current == 60466176) {
eod = true;
setTimeout(() => {
process.exit();
}, 60 * 1000)
}
nums[msg] = 1;
current = Object.keys(nums).length;
process.stdout.write((60466176 - current).toString() + "\r")
});
}
}
} else {
async.forever((cb) => {
var num = randomstring.generate({
length: 5,
charset: 'alphanumeric',
capitalization: 'lowercase',
});
process.send(num);
setImmediate(cb);
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment