mirror of
https://github.com/BerriAI/litellm.git
synced 2025-04-26 19:24:27 +00:00
32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
import os
|
|
import subprocess
|
|
import sys
|
|
import multiprocessing
|
|
from dotenv import load_dotenv
|
|
load_dotenv()
|
|
|
|
def run_rq_worker(redis_url):
|
|
command = ["rq", "worker", "--url", redis_url]
|
|
subprocess.run(command)
|
|
|
|
def start_rq_worker_in_background():
|
|
# Set OBJC_DISABLE_INITIALIZE_FORK_SAFETY to YES
|
|
os.environ["OBJC_DISABLE_INITIALIZE_FORK_SAFETY"] = "YES"
|
|
|
|
# Check if required environment variables are set
|
|
required_vars = ["REDIS_USERNAME", "REDIS_PASSWORD", "REDIS_HOST", "REDIS_PORT"]
|
|
missing_vars = [var for var in required_vars if var not in os.environ]
|
|
|
|
if missing_vars:
|
|
print(f"Error: Redis environment variables not set. Please set {', '.join(missing_vars)}.")
|
|
sys.exit(1)
|
|
|
|
# Construct Redis URL
|
|
REDIS_URL = f"redis://{os.environ['REDIS_USERNAME']}:{os.environ['REDIS_PASSWORD']}@{os.environ['REDIS_HOST']}:{os.environ['REDIS_PORT']}"
|
|
|
|
# Run rq worker in a separate process
|
|
worker_process = multiprocessing.Process(target=run_rq_worker, args=(REDIS_URL,))
|
|
worker_process.start()
|
|
|
|
if __name__ == "__main__":
|
|
start_rq_worker_in_background()
|