Commit dd7efd1768f7f61dfa8c47200fc95bac831c9ff5

Authored by Jacob Vosmaer
1 parent c0090a3f

Add load_ok check to script/background_jobs

Showing 1 changed file with 24 additions and 0 deletions   Show diff stats
script/background_jobs
@@ -6,6 +6,11 @@ sidekiq_pidfile="$app_root/tmp/pids/sidekiq.pid" @@ -6,6 +6,11 @@ sidekiq_pidfile="$app_root/tmp/pids/sidekiq.pid"
6 sidekiq_logfile="$app_root/log/sidekiq.log" 6 sidekiq_logfile="$app_root/log/sidekiq.log"
7 gitlab_user=$(ls -l config.ru | awk '{print $3}') 7 gitlab_user=$(ls -l config.ru | awk '{print $3}')
8 8
  9 +function warn
  10 +{
  11 + echo "$@" 1>&2
  12 +}
  13 +
9 function stop 14 function stop
10 { 15 {
11 bundle exec sidekiqctl stop $sidekiq_pidfile >> $sidekiq_logfile 2>&1 16 bundle exec sidekiqctl stop $sidekiq_pidfile >> $sidekiq_logfile 2>&1
@@ -35,6 +40,22 @@ function start_sidekiq @@ -35,6 +40,22 @@ function start_sidekiq
35 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 40 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
36 } 41 }
37 42
  43 +function load_ok
  44 +{
  45 + sidekiq_pid=$(cat $sidekiq_pidfile)
  46 + if [[ -z $sidekiq_pid ]] ; then
  47 + warn "Could not find a PID in $sidekiq_pidfile"
  48 + exit 0
  49 + fi
  50 +
  51 + if (ps -p $sidekiq_pid -o args | grep '\([0-9]\+\) of \1 busy' 1>&2) ; then
  52 + warn "Too many busy Sidekiq workers"
  53 + exit 1
  54 + fi
  55 +
  56 + exit 0
  57 +}
  58 +
38 case "$1" in 59 case "$1" in
39 stop) 60 stop)
40 stop 61 stop
@@ -51,6 +72,9 @@ case "$1" in @@ -51,6 +72,9 @@ case "$1" in
51 killall) 72 killall)
52 killall 73 killall
53 ;; 74 ;;
  75 + load_ok)
  76 + load_ok
  77 + ;;
54 *) 78 *)
55 echo "Usage: RAILS_ENV=your_env $0 {stop|start|start_no_deamonize|restart|killall}" 79 echo "Usage: RAILS_ENV=your_env $0 {stop|start|start_no_deamonize|restart|killall}"
56 esac 80 esac