Spaces:
Sleeping
Sleeping
| # This script starts the Gunicorn server for the ASR application. | |
| echo "Starting ASR service with Gunicorn..." | |
| # Absolute path to the project directory | |
| PROJECT_DIR="/home/ubuntu/wechat-miniprogram-translator" | |
| # Absolute path to the Gunicorn executable within the venv | |
| VENV_GUNICORN="${PROJECT_DIR}/venv/bin/gunicorn" | |
| # Check if the Gunicorn executable exists | |
| if [ ! -f "$VENV_GUNICORN" ]; then | |
| echo "Error: Gunicorn executable not found at $VENV_GUNICORN" | |
| echo "Please make sure you have run 'pip install gunicorn' in your venv." | |
| exit 1 | |
| fi | |
| # Navigate to the directory containing asr_server.py | |
| cd "$PROJECT_DIR" || exit | |
| # Explanation of parameters: | |
| # --workers 1: Use a single worker process. | |
| # --max-requests 1: CRITICAL! Restart the worker after every single request to prevent state issues. | |
| # --timeout 120: Allow each worker up to 120 seconds to process a request. | |
| # --bind 0.0.0.0:5001: Listen on port 5001 on all network interfaces. | |
| # asr_server:app: The Flask application instance 'app' from the 'asr_server.py' file. | |
| # "$@": This is the crucial part. It takes all arguments passed to this script | |
| # (from ecosystem.config.js, e.g., --model tiny) and passes them to the python script. | |
| exec "$VENV_GUNICORN" --workers 1 --max-requests 1 --timeout 120 --bind 0.0.0.0:5001 asr_server:app -- "$@" |