diff options
author | Marin Jankovski <marin@gitlab.com> | 2014-05-27 17:14:41 +0200 |
---|---|---|
committer | Marin Jankovski <marin@gitlab.com> | 2014-05-27 17:14:41 +0200 |
commit | 2341cefd6fa2811a1af41f2068554738d7eebfc4 (patch) | |
tree | 807a376257151323a203c39dd2ff08b23e29a21e /bin/background_jobs | |
parent | cb4b504b26a269ba6ebb3fee165296a80d962c69 (diff) | |
download | gitlab-ce-2341cefd6fa2811a1af41f2068554738d7eebfc4.tar.gz |
Move from script to bin directory.
Diffstat (limited to 'bin/background_jobs')
-rwxr-xr-x | bin/background_jobs | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/bin/background_jobs b/bin/background_jobs new file mode 100755 index 00000000000..e0140e9689b --- /dev/null +++ b/bin/background_jobs @@ -0,0 +1,80 @@ +#!/usr/bin/env bash + +cd $(dirname $0)/.. +app_root=$(pwd) +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 +} + +function killall +{ + pkill -u $gitlab_user -f sidekiq +} + +function restart +{ + if [ -f $sidekiq_pidfile ]; then + stop + fi + killall + start_sidekiq -d -L $sidekiq_logfile +} + +function start_no_deamonize +{ + start_sidekiq +} + +function start_sidekiq +{ + bundle exec sidekiq -q post_receive -q mailer -q system_hook -q project_web_hook -q gitlab_shell -q common -q 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 + ;; + start) + restart + ;; + start_no_deamonize) + start_no_deamonize + ;; + restart) + restart + ;; + killall) + killall + ;; + load_ok) + load_ok + ;; + *) + echo "Usage: RAILS_ENV=your_env $0 {stop|start|start_no_deamonize|restart|killall|load_ok}" +esac |