12345678910111213141516171819202122232425262728293031323334353637383940 |
- #!/bin/bash
- set -e
- if [[ "${MIGRATION_ENABLED}" == "true" ]]; then
- echo "Running migrations"
- flask upgrade-db
- fi
- if [[ "${MODE}" == "worker" ]]; then
- # Get the number of available CPU cores
- if [ "${CELERY_AUTO_SCALE,,}" = "true" ]; then
- # Set MAX_WORKERS to the number of available cores if not specified
- AVAILABLE_CORES=$(nproc)
- MAX_WORKERS=${CELERY_MAX_WORKERS:-$AVAILABLE_CORES}
- MIN_WORKERS=${CELERY_MIN_WORKERS:-1}
- CONCURRENCY_OPTION="--autoscale=${MAX_WORKERS},${MIN_WORKERS}"
- else
- CONCURRENCY_OPTION="-c ${CELERY_WORKER_AMOUNT:-1}"
- fi
- exec celery -A app.celery worker -P ${CELERY_WORKER_CLASS:-gevent} $CONCURRENCY_OPTION --loglevel ${LOG_LEVEL} \
- -Q ${CELERY_QUEUES:-dataset,generation,mail,ops_trace,app_deletion}
- elif [[ "${MODE}" == "beat" ]]; then
- exec celery -A app.celery beat --loglevel ${LOG_LEVEL}
- else
- if [[ "${DEBUG}" == "true" ]]; then
- exec flask run --host=${DIFY_BIND_ADDRESS:-0.0.0.0} --port=${DIFY_PORT:-5001} --debug
- else
- exec gunicorn \
- --bind "${DIFY_BIND_ADDRESS:-0.0.0.0}:${DIFY_PORT:-5001}" \
- --workers ${SERVER_WORKER_AMOUNT:-1} \
- --worker-class ${SERVER_WORKER_CLASS:-gevent} \
- --timeout ${GUNICORN_TIMEOUT:-200} \
- --preload \
- app:app
- fi
- fi
|