summaryrefslogtreecommitdiff
path: root/bin/background_jobs
diff options
context:
space:
mode:
authorMarin Jankovski <marin@gitlab.com>2014-05-27 17:14:41 +0200
committerMarin Jankovski <marin@gitlab.com>2014-05-27 17:14:41 +0200
commit2341cefd6fa2811a1af41f2068554738d7eebfc4 (patch)
tree807a376257151323a203c39dd2ff08b23e29a21e /bin/background_jobs
parentcb4b504b26a269ba6ebb3fee165296a80d962c69 (diff)
downloadgitlab-ce-2341cefd6fa2811a1af41f2068554738d7eebfc4.tar.gz
Move from script to bin directory.
Diffstat (limited to 'bin/background_jobs')
-rwxr-xr-xbin/background_jobs80
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