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 -- "$@" |