diff --git a/constants.js b/constants.js index 85e86214..7b820f9a 100644 --- a/constants.js +++ b/constants.js @@ -70,7 +70,7 @@ var default_conf = { GRACEFUL_TIMEOUT : parseInt(process.env.PM2_GRACEFUL_TIMEOUT) || 8000, GRACEFUL_LISTEN_TIMEOUT : parseInt(process.env.PM2_GRACEFUL_LISTEN_TIMEOUT) || 4000, - WORKER_INTERVAL : 30000, + WORKER_INTERVAL : process.env.PM2_WORKER_INTERVAL || 30000, DEBUG : process.env.PM2_DEBUG || false, WEB_INTERFACE : parseInt(process.env.PM2_API_PORT) || 9615, diff --git a/lib/Worker.js b/lib/Worker.js index 1fbe4be1..ba37e9c0 100644 --- a/lib/Worker.js +++ b/lib/Worker.js @@ -9,30 +9,20 @@ module.exports = function(God) { God.Worker = {}; var versioning_refresh = function() { - var finished = {}; var processes = God.clusters_db; if (processes && typeof(processes) === 'object') { for (var i in processes) { if (processes[i] && processes[i].pm2_env.versioning) { - if (finished[processes[i].pm2_env.name] !== undefined) { - processes[i].pm2_env.versioning = finished[processes[i].pm2_env.name]; - } - else { - vizion.analyze({folder:processes[i].pm2_env.versioning.repo_path}, - function(err, meta) { - if (err === null) { - var repo_path = processes[i].pm2_env.versioning.repo_path; - if (processes[i] && processes[i].pm2_env) { - processes[i].pm2_env.versioning = meta; - processes[i].pm2_env.versioning.repo_path = repo_path; - if (finished[processes[i].pm2_env.name] === undefined) { - finished[processes[i].pm2_env.name] = processes[i].pm2_env.versioning; - } - } + vizion.analyze({folder:processes[i].pm2_env.versioning.repo_path}, + function(err, meta) { + if (err === null) { + var repo_path = processes[i].pm2_env.versioning.repo_path; + if (processes[i] && processes[i].pm2_env) { + processes[i].pm2_env.versioning = meta; + processes[i].pm2_env.versioning.repo_path = repo_path; } - }); - } - // console.log(processes[i].pm2_env.versioning); + } + }); } } } @@ -43,7 +33,7 @@ module.exports = function(God) { }; God.Worker.start = function() { - timer = setInterval(tasks, 2500 || cst.WORKER_INTERVAL); + timer = setInterval(tasks, cst.WORKER_INTERVAL); }; God.Worker.stop = function() { diff --git a/test/bash/pull.sh b/test/bash/pull.sh index bba98257..1b555b23 100644 --- a/test/bash/pull.sh +++ b/test/bash/pull.sh @@ -13,14 +13,14 @@ cd $file_path git clone https://github.com/keymetrics/app-playground.git cd app-playground git checkout hotfix -$pm2 start ./process.json --name app -sleep 5 +PM2_WORKER_INTERVAL=1000 $pm2 start ./process.json --name app +sleep 4 OUT=`$pm2 ls | grep errored | wc -l` [ $OUT -eq 1 ] || fail "$1" success "$1" -OUT=`$pm2 desc 0 | grep remote | egrep -oh 'https://([^ ]+)'` +OUT=`$pm2 info 0 | grep remote | egrep -oh 'https://([^ ]+)'` [ $OUT = "https://github.com/keymetrics/app-playground.git" ] || fail "$1" success "$1" @@ -44,6 +44,27 @@ OUT=`$pm2 ls | grep "16 " | wc -l` [ $OUT -eq 1 ] || fail "$1" success "$1" +# +# Testing refresh-versioning worker +# +OUT=`$pm2 jlist | egrep -oh '"unstaged":true' | wc -c` +[ $OUT -eq 16 ] || fail "$1" +success "$1" + +rm ./TRACE +sleep 4 +OUT=`$pm2 jlist | egrep -oh '"unstaged":true' | wc -c` +[ $OUT -eq 0 ] || fail "$1" +success "$1" + +echo H>H +git add H +git commit -m 'local' +sleep 4 +OUT=`$pm2 jlist | egrep -oh '"ahead":true' | wc -c` +[ $OUT -eq 13 ] || fail "$1" +success "$1" + $pm2 kill cd .. rm -rf ./app-playground