From 6abad395ce628843345a3147c5a2af960bfa93fc Mon Sep 17 00:00:00 2001 From: danbulant Date: Sat, 28 Sep 2019 18:39:14 +0200 Subject: [PATCH] add task counter, stop process when all tasks done --- index.js | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 0086d74..b335796 100644 --- a/index.js +++ b/index.js @@ -102,13 +102,27 @@ con.connect(function(err) { log("\x1b[32mMySQL Connected!"); s2c.setConnection(con); - + var running = { + aInternal: 0, + aListener: function(val) {}, + set a(val) { + this.aInternal = val; + this.aListener(val); + }, + get a() { + return this.aInternal; + }, + registerListener: function(listener) { + this.aListener = listener; + } + } fs.readdirSync('./input/').forEach(file => { var fileName = file; file = "./input/" + file; if(fs.statSync(file).isDirectory()) return;//skip directories var query = fs.readFileSync(file); log("Running " + query + " from file " + file); + running.a++; s2c.query(query + '') .then(result => { var loc = "/output/" + fileName; @@ -119,8 +133,16 @@ con.connect(function(err) { loc += ".csv"; fs.writeFile(loc, result.csv, { flag: "w"}, (err)=>{if(err)error(err)}); success(`Task from file ${file} done in ` + Math.round(result.end - result.start) + "ms, saved to "+loc); + running.a--; }) - .catch(err => {error(err); process.exit(0)}) + .catch(err => {error(err); process.exit(0)}); + running.registerListener(function(val) { + if(val == 0){ + success("Everything done, exiting"); + process.exit(0); + } + log(val + " tasks running"); + }); }); });