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

init

parent 086c886e
let fs=require('fs')
let _=require('lodash')
let fs = require('fs')
let _ = require('lodash')
var shell = require('shelljs');
let prefix='work'
let cores=15
let prefix = 'work'
let cores = 15
init()
async function init() {
async function init()
{
for (let i=0;i<cores;i++)
{
let res=await fs.existsSync(prefix+i)
for (let i = 0; i < cores; i++) {
let res = await fs.existsSync(prefix + i)
if (!res) {
await fs.mkdirSync(prefix + i)
await fs.mkdirSync(prefix + i)
}
await makeStatus(prefix + i)
......@@ -27,12 +24,11 @@ async function init()
check()
}
function makeStatus(directory) {
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);
else resolve(true);
});
......@@ -40,47 +36,42 @@ function makeStatus(directory) {
}
async function check()
{
let files=await fs.readdirSync('files')
let size=await fs.read
for (let i=0;i<files.length;i++)
{
async function check() {
let files = await fs.readdirSync('files')
let size = await fs.read
for (let i = 0; i < files.length; i++) {
if (!files[i].includes('csv')) {
await fs.renameSync('files/'+files[i],worker+'/'+files[i])
await fs.unlinkSync('files/' + files[i])
continue
}
let stats=await fs.statSync('files/'+files[i])
console.log(stats.size)
if (stats.size<500) {
await fs.renameSync('files/'+files[i],worker+'/'+files[i])
let stats = await fs.statSync('files/' + files[i])
if (stats.size < 500) {
await fs.unlinkSync('files/' + files[i])
continue
}
// console.log(stats.size)
// console.log(stats.size)
let worker=await findOffWorker()
// console.log(worker)
let worker = await findOffWorker()
// console.log(worker)
if (worker !==null)
{
await fs.renameSync('files/'+files[i],worker+'/'+files[i])
await makeStatusNew(worker,'1')
shell.exec('node run.js '+worker, {async: true});
if (worker !== null) {
await fs.renameSync('files/' + files[i], worker + '/' + files[i])
await makeStatusNew(worker, '1')
shell.exec('node run.js ' + worker, {async: true});
}
}
await sleep(250)
await sleep(250)
return check()
// console.log(files)
// console.log(files)
}
function sleep(millis) {
......@@ -98,21 +89,18 @@ function makeStatusNew(directory, status) {
}
async function findOffWorker()
{
let arr=[]
for (let i=0;i<cores;i++)
{
let res = await fs.readFileSync('./'+prefix+i+'/work.txt', 'utf8');
async function findOffWorker() {
let arr = []
for (let i = 0; i < cores; i++) {
let res = await fs.readFileSync('./' + prefix + i + '/work.txt', 'utf8');
if (res.includes('0'))
arr.push(prefix+i)
arr.push(prefix + i)
}
arr=_.shuffle(arr)
if (arr.length !==0)
arr = _.shuffle(arr)
if (arr.length !== 0)
return arr[0]
else return null
else return null
}
\ No newline at end of file
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