diff options
author | Jacob Vosmaer <contact@jacobvosmaer.nl> | 2014-03-13 15:20:31 +0100 |
---|---|---|
committer | Jacob Vosmaer <contact@jacobvosmaer.nl> | 2014-03-20 14:44:55 +0100 |
commit | dd7efd1768f7f61dfa8c47200fc95bac831c9ff5 (patch) | |
tree | 1fc6095c90fb517c90852abaa56bafd5be7cad2a /script | |
parent | c0090a3ff50802d796ec36f49ade1bb4fdd4d190 (diff) | |
download | gitlab-ce-dd7efd1768f7f61dfa8c47200fc95bac831c9ff5.tar.gz |
Add load_ok check to script/background_jobs
Diffstat (limited to 'script')
-rwxr-xr-x | script/background_jobs | 24 |
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 |