Spaces:
Sleeping
Sleeping
Download scripts/start_celery_worker.py from PraneelChetty-1/ProspectIQ: direct link, hf CLI and curl.
- Browser
- Download file 2.29 kB
-
https://huggingface.co/spaces/PraneelChetty-1/ProspectIQ/resolve/main/scripts/start_celery_worker.py
- Command line
-
hf download hf://spaces/PraneelChetty-1/ProspectIQ/scripts/start_celery_worker.py
-
curl -L -o start_celery_worker.py https://huggingface.co/spaces/PraneelChetty-1/ProspectIQ/resolve/main/scripts/start_celery_worker.py
2.29 kB
| import os | |
| import sys | |
| import subprocess | |
| from urllib.parse import urlparse | |
| from dotenv import load_dotenv | |
| load_dotenv() | |
| # Add project root to sys.path | |
| PROJECT_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), "..")) | |
| if PROJECT_ROOT not in sys.path: | |
| sys.path.insert(0, PROJECT_ROOT) | |
| from celery_app import celery_app, celery_worker_health | |
| def main(): | |
| print("=" * 60) | |
| print(" ProspectIQ Celery Worker Launcher") | |
| print("=" * 60) | |
| broker_url = celery_app.conf.broker_url or "redis://127.0.0.1:6379/0" | |
| parsed = urlparse(str(broker_url)) | |
| print(f"Broker URL: {parsed.scheme}://{parsed.hostname}:{parsed.port}") | |
| print(f"Platform: {sys.platform}") | |
| # Check if broker is reachable | |
| print("\nChecking broker connectivity...") | |
| try: | |
| if parsed.scheme in {"redis", "rediss"}: | |
| import redis | |
| kwargs = {"socket_connect_timeout": 3, "socket_timeout": 3} | |
| if parsed.scheme == "rediss": | |
| import ssl | |
| kwargs["ssl_cert_reqs"] = ssl.CERT_NONE | |
| client = redis.Redis.from_url(str(broker_url), **kwargs) | |
| client.ping() | |
| print(" [OK] Redis broker connection successful.") | |
| except Exception as exc: | |
| print(f" [WARN] Redis connection check failed: {exc}") | |
| print(" Ensure your Redis server is running (e.g. docker run -p 6379:6379 redis:7-alpine)") | |
| # Select appropriate pool | |
| pool = os.environ.get("CELERY_WORKER_POOL") | |
| if not pool: | |
| pool = "solo" if sys.platform == "win32" else "solo" | |
| concurrency = os.environ.get("CELERY_WORKER_CONCURRENCY", "1") | |
| loglevel = os.environ.get("CELERY_LOG_LEVEL", "info") | |
| print(f"Worker Pool: {pool}") | |
| print(f"Concurrency: {concurrency}") | |
| print(f"Log Level: {loglevel}\n") | |
| print("Starting Celery worker...\n" + "-" * 60) | |
| cmd = [ | |
| sys.executable, | |
| "-m", | |
| "celery", | |
| "-A", | |
| "celery_app.celery_app", | |
| "worker", | |
| f"--loglevel={loglevel}", | |
| f"--pool={pool}", | |
| f"--concurrency={concurrency}", | |
| ] | |
| try: | |
| subprocess.run(cmd, cwd=PROJECT_ROOT, check=True) | |
| except KeyboardInterrupt: | |
| print("\nCelery worker stopped.") | |
| if __name__ == "__main__": | |
| main() | |