From 734eaeac2f001e6881b8e4d7678c29224018e25f Mon Sep 17 00:00:00 2001 From: Thomas Harvey Date: Sat, 21 Oct 2017 11:05:04 -0400 Subject: [PATCH] adjusting cronjob --- allocate_runners.sh | 9 +++------ routes/crontab_syslog.txt | 25 +++++++++++++++++++++++++ routes/worker_collection.js | 26 ++++++++++++++++++++------ 3 files changed, 48 insertions(+), 12 deletions(-) create mode 100644 routes/crontab_syslog.txt diff --git a/allocate_runners.sh b/allocate_runners.sh index 6f21d2a..a26ed4b 100644 --- a/allocate_runners.sh +++ b/allocate_runners.sh @@ -1,7 +1,4 @@ # maxMemoryUsage must be defined -baseName="crunner0"; -namePrefix="cubs"; -runners=""; function usedMemoryPercent () { memoryAvailable=$(head /proc/meminfo|grep MemAvail|grep -Po '\d+'); @@ -12,7 +9,9 @@ function usedMemoryPercent () { } function buildRunners () { - + baseName="crunner0"; + namePrefix="cubs"; + runners=""; usedMemoryPercent; # maxMemoryUsage must be defined @@ -26,8 +25,6 @@ function buildRunners () { fi usedMemoryPercent; done - - echo $runners; } buildRunners; exit 0; \ No newline at end of file diff --git a/routes/crontab_syslog.txt b/routes/crontab_syslog.txt new file mode 100644 index 0000000..1b9b855 --- /dev/null +++ b/routes/crontab_syslog.txt @@ -0,0 +1,25 @@ +Oct 20 21:52:16 dev--CLW10-3066 crontab[1885]: (virt) REPLACE (virt) +Oct 20 21:52:37 dev--CLW10-3066 crontab[2166]: (virt) LIST (virt) +Oct 20 21:53:03 dev--CLW10-3066 crontab[2168]: (virt) LIST (virt) +Oct 20 22:01:01 dev--CLW10-3066 CRON[18873]: (virt) CMD (source /home/virt/allocate_runners.sh) +Oct 20 23:01:01 dev--CLW10-3066 CRON[1867]: (virt) CMD (source /home/virt/allocate_runners.sh) + + + + +ALL CRON +Oct 20 21:52:13 dev--CLW10-3066 cron[1443]: (CRON) INFO (pidfile fd = 3) +Oct 20 21:52:13 dev--CLW10-3066 cron[1443]: (CRON) INFO (Running @reboot jobs) +Oct 20 21:52:16 dev--CLW10-3066 crontab[1885]: (virt) REPLACE (virt) +Oct 20 21:52:37 dev--CLW10-3066 crontab[2166]: (virt) LIST (virt) +Oct 20 21:53:03 dev--CLW10-3066 crontab[2168]: (virt) LIST (virt) +Oct 20 22:01:01 dev--CLW10-3066 CRON[18873]: (virt) CMD (source /home/virt/allocate_runners.sh) +Oct 20 22:01:01 dev--CLW10-3066 CRON[18870]: (CRON) info (No MTA installed, discarding output) +Oct 20 22:17:01 dev--CLW10-3066 cron[1443]: Authentication token is no longer valid; new one required +Oct 20 22:17:01 dev--CLW10-3066 CRON[18913]: Authentication token is no longer valid; new one required +Oct 20 22:17:53 dev--CLW10-3066 cron[1393]: (CRON) INFO (pidfile fd = 3) +Oct 20 22:17:53 dev--CLW10-3066 cron[1393]: (CRON) INFO (Running @reboot jobs) +Oct 20 23:01:01 dev--CLW10-3066 CRON[1867]: (virt) CMD (source /home/virt/allocate_runners.sh) +Oct 20 23:01:01 dev--CLW10-3066 CRON[1865]: (CRON) info (No MTA installed, discarding output) +Oct 20 23:17:01 dev--CLW10-3066 cron[1393]: Authentication token is no longer valid; new one required +Oct 20 23:17:01 dev--CLW10-3066 CRON[1897]: Authentication token is no longer valid; new one required diff --git a/routes/worker_collection.js b/routes/worker_collection.js index 23f4efd..2b786be 100644 --- a/routes/worker_collection.js +++ b/routes/worker_collection.js @@ -222,7 +222,15 @@ var Worker = (function(){ }); }; - proto.startRunners = function(args){ + proto.__buildCommand = function(file, maxMemoryUsage){ + var command = `echo "export PATH=\${PATH};export maxMemoryUsage=${maxMemoryUsage};`; + command += `echo '${file.toString("base64")}'|base64 --decode|bash" | cat > /home/virt/allocate_runners.sh`; + command += ` && echo "*/1 * * * * source /home/virt/allocate_runners.sh >> /home/virt/allocate_runners.log 2>&1" | crontab -;`; + return command; + }; + + proto.startRunners = function(args, count){ + if ( count > 3) return; // onStart is not necessary var worker = this; args.stopPercent = args.stopPercent || 80; @@ -242,18 +250,24 @@ var Worker = (function(){ worker.isBuildingRunners = true; fs.readFile(__dirname + "/../allocate_runners.sh", function(error, file){ - var command = '(crontab -l > /tmp/virtjobs && echo "1 * * * * export PATH=${PATH};' + - "export maxMemoryUsage=${args.stopPercent};" + `echo '${file.toString("base64")}'|base64 --decode|bash")` - + ">> /tmp/virtjobs && crontab /tmp/virtjobs && rm /tmp/virtjobs;"; + var command = worker.__buildCommand(file, args.stopPercent); + lxc.exec(command, worker.ip, function(data, error, stderr){ - console.log(arguments); + if (error) { + console.log("ERROR: ",stderr); + setTimeout(function(){ + count = count || 0; + worker.startRunners(args, ++count); + }, 0); + } else { + console.log("SUCCESS: ", data , worker.ip); + } // Just send the job over and set a timeout // to wait before checking runners setTimeout(function(){ worker.sync(args.callback); // 900000 < thats 15 min not 90 sec }, 90000); - }); });