03b14bb814
This syntax is compatible with the current Sidekiq version we use
(2.17.0) and it protects us against future breakage by
040eda558b
80 lines
1.4 KiB
Bash
Executable file
80 lines
1.4 KiB
Bash
Executable file
#!/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
|