Commit 3024f43e authored by Ahmad Nemati's avatar Ahmad Nemati

init

parent 086c886e
let fs=require('fs') let fs = require('fs')
let _=require('lodash') let _ = require('lodash')
var shell = require('shelljs'); var shell = require('shelljs');
let prefix='work' let prefix = 'work'
let cores=15 let cores = 15
init() init()
async function init() {
async function init()
{
for (let i = 0; i < cores; i++) {
for (let i=0;i<cores;i++) let res = await fs.existsSync(prefix + i)
{
let res=await fs.existsSync(prefix+i)
if (!res) { if (!res) {
await fs.mkdirSync(prefix + i) await fs.mkdirSync(prefix + i)
...@@ -27,12 +24,11 @@ async function init() ...@@ -27,12 +24,11 @@ async function init()
check() check()
} }
function makeStatus(directory) { function makeStatus(directory) {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
fs.writeFile(directory+'/work'+'.txt', '0', 'utf8', function (err) { fs.writeFile(directory + '/work' + '.txt', '0', 'utf8', function (err) {
if (err) reject(err); if (err) reject(err);
else resolve(true); else resolve(true);
}); });
...@@ -40,46 +36,41 @@ function makeStatus(directory) { ...@@ -40,46 +36,41 @@ function makeStatus(directory) {
} }
async function check() {
async function check() let files = await fs.readdirSync('files')
{ let size = await fs.read
let files=await fs.readdirSync('files') for (let i = 0; i < files.length; i++) {
let size=await fs.read
for (let i=0;i<files.length;i++)
{
if (!files[i].includes('csv')) { if (!files[i].includes('csv')) {
await fs.renameSync('files/'+files[i],worker+'/'+files[i]) await fs.unlinkSync('files/' + files[i])
continue continue
} }
let stats=await fs.statSync('files/'+files[i]) let stats = await fs.statSync('files/' + files[i])
console.log(stats.size) if (stats.size < 500) {
if (stats.size<500) {
await fs.renameSync('files/'+files[i],worker+'/'+files[i]) await fs.unlinkSync('files/' + files[i])
continue continue
} }
// console.log(stats.size) // console.log(stats.size)
let worker=await findOffWorker() let worker = await findOffWorker()
// console.log(worker) // console.log(worker)
if (worker !==null) if (worker !== null) {
{ await fs.renameSync('files/' + files[i], worker + '/' + files[i])
await fs.renameSync('files/'+files[i],worker+'/'+files[i]) await makeStatusNew(worker, '1')
await makeStatusNew(worker,'1') shell.exec('node run.js ' + worker, {async: true});
shell.exec('node run.js '+worker, {async: true});
} }
} }
await sleep(250) await sleep(250)
return check() return check()
// console.log(files) // console.log(files)
} }
...@@ -98,19 +89,16 @@ function makeStatusNew(directory, status) { ...@@ -98,19 +89,16 @@ function makeStatusNew(directory, status) {
} }
async function findOffWorker() {
async function findOffWorker() let arr = []
{ for (let i = 0; i < cores; i++) {
let arr=[] let res = await fs.readFileSync('./' + prefix + i + '/work.txt', 'utf8');
for (let i=0;i<cores;i++)
{
let res = await fs.readFileSync('./'+prefix+i+'/work.txt', 'utf8');
if (res.includes('0')) if (res.includes('0'))
arr.push(prefix+i) arr.push(prefix + i)
} }
arr=_.shuffle(arr) arr = _.shuffle(arr)
if (arr.length !==0) if (arr.length !== 0)
return arr[0] return arr[0]
else return null else return null
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment