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:
commit
d91d472c04
2
build/common/commands/gevent_patch.py
Normal file
2
build/common/commands/gevent_patch.py
Normal file
@ -0,0 +1,2 @@
|
||||
import gevent.monkey
|
||||
gevent.monkey.patch_all()
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user