debian-mirror-gitlab/bin/background_jobs_sk_cluster

77 lines
1.3 KiB
Text
Raw Normal View History

2020-05-24 23:13:21 +05:30
#!/usr/bin/env bash
2020-04-08 14:13:33 +05:30
cd $(dirname $0)/..
app_root=$(pwd)
sidekiq_pidfile="$app_root/tmp/pids/sidekiq-cluster.pid"
sidekiq_logfile="$app_root/log/sidekiq.log"
gitlab_user=$(ls -l config.ru | awk '{print $3}')
warn()
{
echo "$@" 1>&2
}
2021-09-30 23:02:18 +05:30
get_sidekiq_pid()
2020-04-08 14:13:33 +05:30
{
if [ ! -f $sidekiq_pidfile ]; then
warn "No pidfile found at $sidekiq_pidfile; is Sidekiq running?"
return
fi
cat $sidekiq_pidfile
}
stop()
{
sidekiq_pid=$(get_sidekiq_pid)
if [ $sidekiq_pid ]; then
kill -TERM $sidekiq_pid
fi
}
restart()
{
if [ -f $sidekiq_pidfile ]; then
stop
fi
warn "Sidekiq output will be written to $sidekiq_logfile"
2021-09-30 23:02:18 +05:30
start_sidekiq "$@" >> $sidekiq_logfile 2>&1
2020-04-08 14:13:33 +05:30
}
start_sidekiq()
{
cmd="exec"
2020-06-23 00:09:42 +05:30
chpst=$(command -v chpst)
2020-04-08 14:13:33 +05:30
if [ -n "$chpst" ]; then
cmd="${cmd} ${chpst} -P"
fi
# sidekiq-cluster expects '*' '*' arguments (one wildcard for each process).
for (( i=1; i<=$SIDEKIQ_WORKERS; i++ ))
do
processes_args+=("*")
done
2021-09-30 23:02:18 +05:30
${cmd} bin/sidekiq-cluster "${processes_args[@]}" -P $sidekiq_pidfile -e $RAILS_ENV "$@"
2020-04-08 14:13:33 +05:30
}
case "$1" in
stop)
stop
;;
start)
2021-09-30 23:02:18 +05:30
restart "$@" &
2020-04-08 14:13:33 +05:30
;;
start_foreground)
2021-09-30 23:02:18 +05:30
start_sidekiq "$@"
2020-04-08 14:13:33 +05:30
;;
restart)
2021-09-30 23:02:18 +05:30
restart "$@" &
2020-04-08 14:13:33 +05:30
;;
*)
echo "Usage: RAILS_ENV=<env> SIDEKIQ_WORKERS=<n> $0 {stop|start|start_foreground|restart}"
esac