Download api/start_worker.sh from Text-to-Document-Generation/Docgenie-API: direct link, hf CLI and curl.
- Browser
- Download file 3.17 kB
-
https://huggingface.co/spaces/Text-to-Document-Generation/Docgenie-API/resolve/main/api/start_worker.sh
- Command line
-
hf download hf://spaces/Text-to-Document-Generation/Docgenie-API/api/start_worker.sh
-
curl -L -o start_worker.sh https://huggingface.co/spaces/Text-to-Document-Generation/Docgenie-API/resolve/main/api/start_worker.sh
3.17 kB
| # ============================================ | |
| # DocGenie RQ Worker Startup Script | |
| # ============================================ | |
| # This script starts an RQ (Redis Queue) worker for processing | |
| # background document generation jobs. | |
| set -e # Exit on error | |
| echo "π Starting DocGenie RQ Worker..." | |
| # Activate virtual environment | |
| VENV_PATH="../.venv" | |
| if [ -d "$VENV_PATH" ]; then | |
| echo "β Activating virtual environment..." | |
| source "$VENV_PATH/bin/activate" | |
| else | |
| echo "β Warning: Virtual environment not found at $VENV_PATH" | |
| fi | |
| # Load environment variables from .env using Python (handles special characters properly) | |
| if [ -f .env ]; then | |
| echo "β Loading .env file..." | |
| eval $(python -c " | |
| import os | |
| from dotenv import load_dotenv | |
| load_dotenv() | |
| for key, value in os.environ.items(): | |
| # Only export DocGenie related variables | |
| if key.startswith(('REDIS', 'SUPABASE', 'ANTHROPIC', 'BATCH', 'MESSAGE', 'RQ_', 'GOOGLE')): | |
| # Properly escape single quotes in the value | |
| safe_value = value.replace(\"'\", \"'\\\\''\" ) | |
| print(f\"export {key}='{safe_value}'\") | |
| ") | |
| else | |
| echo "β Warning: .env file not found" | |
| fi | |
| # Check Redis connection | |
| echo "π Checking Redis connection..." | |
| if ! python -c "import redis; r = redis.from_url('${REDIS_URL:-redis://localhost:6379/0}'); r.ping()" 2>/dev/null; then | |
| echo "β Error: Cannot connect to Redis" | |
| echo " Please ensure Redis is running:" | |
| echo " $ docker run -d -p 6379:6379 redis:latest" | |
| echo " OR" | |
| echo " $ redis-server" | |
| exit 1 | |
| fi | |
| echo "β Redis connected" | |
| # Check Supabase configuration | |
| if [ -z "$SUPABASE_URL" ] || [ -z "$SUPABASE_KEY" ]; then | |
| echo "β Error: SUPABASE_URL and SUPABASE_KEY must be set in .env" | |
| exit 1 | |
| fi | |
| echo "β Supabase configured" | |
| # Check Claude API key | |
| if [ -z "$ANTHROPIC_API_KEY" ]; then | |
| echo "β Error: ANTHROPIC_API_KEY must be set in .env" | |
| exit 1 | |
| fi | |
| echo "β Claude API key configured" | |
| # Create temporary directories | |
| mkdir -p "${BATCH_DATA_DIR:-/tmp/docgenie_batches}" | |
| mkdir -p "${MESSAGE_DATA_DIR:-/tmp/docgenie_messages}" | |
| echo "β Temporary directories created" | |
| # Start worker | |
| QUEUE_NAME="${RQ_QUEUE_NAME:-docgenie}" | |
| echo "" | |
| echo "============================================" | |
| echo "Worker Configuration:" | |
| echo " Queue: $QUEUE_NAME" | |
| # Mask Redis credentials for security | |
| echo " Redis: [HIDDEN]" | |
| echo " Batch Data: ${BATCH_DATA_DIR:-/tmp/docgenie_batches}" | |
| echo " Message Data: ${MESSAGE_DATA_DIR:-/tmp/docgenie_messages}" | |
| echo "============================================" | |
| echo "" | |
| echo "β Starting RQ worker (press Ctrl+C to stop)..." | |
| echo "" | |
| # Run RQ worker | |
| # - Listen on specified queue | |
| # - Burst mode: exit when queue is empty (use for testing) | |
| # - Remove --burst for production (keeps running) | |
| # Use PYTHONPATH to ensure worker.py can be imported | |
| PYTHONPATH="$(pwd):$PYTHONPATH" rq worker "$QUEUE_NAME" \ | |
| --url "${REDIS_URL:-redis://localhost:6379/0}" \ | |
| --verbose | |
| # --burst # Uncomment for testing (exit when queue empty) | |
| # Note: Worker will keep running until Ctrl+C is pressed | |
| # In production, use a process manager like systemd or supervisor | |