| | #!/bin/bash |
| |
|
| | set -e |
| |
|
| | if [[ "${MIGRATION_ENABLED}" == "true" ]]; then |
| | echo "Running migrations" |
| | flask upgrade-db |
| | fi |
| |
|
| | if [[ "${MODE}" == "worker" ]]; then |
| |
|
| | |
| | if [ "${CELERY_AUTO_SCALE,,}" = "true" ]; then |
| | |
| | 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 |
| |
|