summaryrefslogtreecommitdiff
path: root/script
diff options
context:
space:
mode:
authorJacob Vosmaer <contact@jacobvosmaer.nl>2014-03-13 15:20:31 +0100
committerJacob Vosmaer <contact@jacobvosmaer.nl>2014-03-20 14:44:55 +0100
commitdd7efd1768f7f61dfa8c47200fc95bac831c9ff5 (patch)
tree1fc6095c90fb517c90852abaa56bafd5be7cad2a /script
parentc0090a3ff50802d796ec36f49ade1bb4fdd4d190 (diff)
downloadgitlab-ce-dd7efd1768f7f61dfa8c47200fc95bac831c9ff5.tar.gz
Add load_ok check to script/background_jobs
Diffstat (limited to 'script')
-rwxr-xr-xscript/background_jobs24
1 files changed, 24 insertions, 0 deletions
diff --git a/script/background_jobs b/script/background_jobs
index 06125c11ffe..a41ae3956c2 100755
--- a/script/background_jobs
+++ b/script/background_jobs
@@ -6,6 +6,11 @@ sidekiq_pidfile="$app_root/tmp/pids/sidekiq.pid"
sidekiq_logfile="$app_root/log/sidekiq.log"
gitlab_user=$(ls -l config.ru | awk '{print $3}')
+function warn
+{
+ echo "$@" 1>&2
+}
+
function stop
{
bundle exec sidekiqctl stop $sidekiq_pidfile >> $sidekiq_logfile 2>&1
@@ -35,6 +40,22 @@ function start_sidekiq
bundle exec sidekiq -q post_receive,mailer,system_hook,project_web_hook,gitlab_shell,common,default -e $RAILS_ENV -P $sidekiq_pidfile $@ >> $sidekiq_logfile 2>&1
}
+function load_ok
+{
+ sidekiq_pid=$(cat $sidekiq_pidfile)
+ if [[ -z $sidekiq_pid ]] ; then
+ warn "Could not find a PID in $sidekiq_pidfile"
+ exit 0
+ fi
+
+ if (ps -p $sidekiq_pid -o args | grep '\([0-9]\+\) of \1 busy' 1>&2) ; then
+ warn "Too many busy Sidekiq workers"
+ exit 1
+ fi
+
+ exit 0
+}
+
case "$1" in
stop)
stop
@@ -51,6 +72,9 @@ case "$1" in
killall)
killall
;;
+ load_ok)
+ load_ok
+ ;;
*)
echo "Usage: RAILS_ENV=your_env $0 {stop|start|start_no_deamonize|restart|killall}"
esac