diff options
author | Andrew Newdigate <andrew@gitlab.com> | 2018-10-20 19:00:19 +0100 |
---|---|---|
committer | Andrew Newdigate <andrew@gitlab.com> | 2018-10-25 17:50:15 +0100 |
commit | 1065f8ce7a261dff5a3077be46405343141733df (patch) | |
tree | 92669873cb55a448de6a581a86d970148762d210 /bin | |
parent | 605e952e39ddad4efa786ebc06a3175727563db5 (diff) | |
download | gitlab-ce-1065f8ce7a261dff5a3077be46405343141733df.tar.gz |
Add experimental support for Pumaan-multithreading
This allows us (and others) to test drive Puma without it affecting all
users. Puma can be enabled by setting the environment variable
"EXPERIMENTAL_PUMA" to a non empty value.
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/web | 5 | ||||
-rwxr-xr-x | bin/web_puma | 63 |
2 files changed, 68 insertions, 0 deletions
@@ -3,6 +3,11 @@ cd $(dirname $0)/.. app_root=$(pwd) +# Switch to experimental PUMA configuration +if [ -n "${EXPERIMENTAL_PUMA}" ]; then + exec bin/web_puma "$@" +fi + unicorn_pidfile="$app_root/tmp/pids/unicorn.pid" unicorn_config="$app_root/config/unicorn.rb" unicorn_cmd="bundle exec unicorn_rails -c $unicorn_config -E $RAILS_ENV" diff --git a/bin/web_puma b/bin/web_puma new file mode 100755 index 00000000000..178fe84800d --- /dev/null +++ b/bin/web_puma @@ -0,0 +1,63 @@ +#!/bin/sh + +set -e + +cd $(dirname $0)/.. +app_root=$(pwd) + +puma_pidfile="$app_root/tmp/pids/puma.pid" +puma_config="$app_root/config/puma.rb" + +spawn_puma() +{ + exec bundle exec puma --config "${puma_config}" "$@" +} + +get_puma_pid() +{ + pid=$(cat "${puma_pidfile}") + if [ -z "$pid" ] ; then + echo "Could not find a PID in $puma_pidfile" + exit 1 + fi + echo "${pid}" +} + +start() +{ + spawn_puma -d +} + +start_foreground() +{ + spawn_puma +} + +stop() +{ + get_puma_pid + kill -QUIT "$(get_puma_pid)" +} + +reload() +{ + kill -USR2 "$(get_puma_pid)" +} + +case "$1" in + start) + start + ;; + start_foreground) + start_foreground + ;; + stop) + stop + ;; + reload) + reload + ;; + *) + echo "Usage: RAILS_ENV=your_env $0 {start|stop|reload}" + ;; +esac |