| 12345678910111213141516171819202122232425262728293031323334353637383940 | #!/bin/bashset -eif [[ "${MIGRATION_ENABLED}" == "true" ]]; then  echo "Running migrations"  flask upgrade-dbfiif [[ "${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 INFO \    -Q ${CELERY_QUEUES:-dataset,generation,mail,ops_trace,app_deletion}elif [[ "${MODE}" == "beat" ]]; then  exec celery -A app.celery beat --loglevel INFOelse  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  fifi
 |