summaryrefslogtreecommitdiff
path: root/bin/background_jobs_sk
blob: 0aab69126b2ba77e1dafcc55ac9aaf74403a52f9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/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"
sidekiq_config="$app_root/config/sidekiq_queues.yml"
gitlab_user=$(ls -l config.ru | awk '{print $3}')

warn()
{
  echo "$@" 1>&2
}

stop()
{
  bundle exec sidekiqctl stop $sidekiq_pidfile >> $sidekiq_logfile 2>&1
}

restart()
{
  if [ -f $sidekiq_pidfile ]; then
    stop
  fi

  pkill -u $gitlab_user -f 'sidekiq [0-9]'
  start_sidekiq -P $sidekiq_pidfile -d -L $sidekiq_logfile >> $sidekiq_logfile 2>&1
}

# Starts on foreground but output to the logfile instead stdout.
start_silent()
{
  start_sidekiq >> $sidekiq_logfile 2>&1
}

start_sidekiq()
{
  cmd="exec"
  chpst=$(command -v chpst)

  if [ -n "$chpst" ]; then
    cmd="${cmd} ${chpst} -P"
  fi

  ${cmd} bundle exec sidekiq -C "${sidekiq_config}" -e $RAILS_ENV "$@"
}

case "$1" in
  stop)
    stop
    ;;
  start)
    restart
    ;;
  start_silent)
    warn "Deprecated: Will be removed at 13.0 (see https://gitlab.com/gitlab-org/gitlab/-/issues/196731)."
    start_silent
    ;;
  start_foreground)
    start_sidekiq
    ;;
  restart)
    restart
    ;;
  *)
    echo "Usage: RAILS_ENV=<env> $0 {stop|start|start_silent|start_foreground|restart}"
esac