2
0
mirror of https://github.com/frappe/frappe_docker.git synced 2025-02-11 00:18:47 +00:00

Merge pull request #438 from revant/gunicorn-gevent

feat(frappe-worker): option to set gevent as gunicorn worker-class
This commit is contained in:
Revant Nandgaonkar 2021-03-22 13:02:14 +05:30 committed by GitHub
commit d91d472c04
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 20 additions and 6 deletions

View File

@ -0,0 +1,2 @@
import gevent.monkey
gevent.monkey.patch_all()

View File

@ -84,17 +84,26 @@ if [ "$1" = 'start' ]; then
export FRAPPE_PORT=8000
fi
if [[ -z "$WORKER_CLASS" ]]; then
export WORKER_CLASS=gthread
fi
export LOAD_CONFIG_FILE=""
if [ "$WORKER_CLASS" = "gevent" ]; then
export LOAD_CONFIG_FILE="-c /home/frappe/frappe-bench/commands/gevent_patch.py"
fi
if [[ ! -z "$AUTO_MIGRATE" ]]; then
. /home/frappe/frappe-bench/env/bin/activate \
&& python /home/frappe/frappe-bench/commands/auto_migrate.py
fi
. /home/frappe/frappe-bench/env/bin/activate
gunicorn -b 0.0.0.0:$FRAPPE_PORT \
gunicorn $LOAD_CONFIG_FILE -b 0.0.0.0:$FRAPPE_PORT \
--worker-tmp-dir /dev/shm \
--threads=4 \
--workers $WORKERS \
--worker-class=gthread \
--worker-class=$WORKER_CLASS \
--log-file=- \
-t 120 frappe.app:application --preload
@ -102,21 +111,21 @@ elif [ "$1" = 'worker' ]; then
checkConfigExists
checkConnection
# default WORKER_TYPE=default
. /home/frappe/frappe-bench/env/bin/activate
python /home/frappe/frappe-bench/commands/worker.py
elif [ "$1" = 'schedule' ]; then
checkConfigExists
checkConnection
. /home/frappe/frappe-bench/env/bin/activate
python /home/frappe/frappe-bench/commands/background.py
elif [ "$1" = 'new' ]; then
checkConfigExists
checkConnection
. /home/frappe/frappe-bench/env/bin/activate
python /home/frappe/frappe-bench/commands/new.py
exit
@ -124,7 +133,7 @@ elif [ "$1" = 'new' ]; then
elif [ "$1" = 'drop' ]; then
checkConfigExists
checkConnection
. /home/frappe/frappe-bench/env/bin/activate
python /home/frappe/frappe-bench/commands/drop.py
exit

View File

@ -65,6 +65,8 @@ RUN mkdir -p apps logs commands sites /home/frappe/backups
# Setup python environment
RUN python -m venv env \
&& . env/bin/activate \
&& pip3 install --upgrade pip \
&& pip3 install gevent \
&& cd apps \
&& git clone --depth 1 -o upstream https://github.com/frappe/frappe --branch ${GIT_BRANCH} \
&& pip3 install --no-cache-dir -e /home/frappe/frappe-bench/apps/frappe

View File

@ -10,6 +10,7 @@ Following environment variables are set into sites volume as `common_site_config
- `REDIS_QUEUE`: Redis queue host, domain name or ip address.
- `REDIS_SOCKETIO`: Redis queue host, domain name or ip address.
- `SOCKETIO_PORT: `: Port on which the SocketIO should start.
- `WORKER_CLASS`: Optionally set gunicorn worker-class. Supports gevent only, defaults to gthread.
### frappe-nginx and erpnext-nginx