Fix redis ssl issues

This commit is contained in:
2026-01-24 19:12:35 +01:00
parent a65789974b
commit 08f84e951a
9 changed files with 72 additions and 17 deletions

View File

@@ -100,16 +100,23 @@ class OrchestratorService(StandardFastAPIService):
Without leader election, each pod would run the same scheduled jobs,
causing duplicate forecasts, production schedules, and database contention.
"""
import ssl
from shared.leader_election import LeaderElectionService
import redis.asyncio as redis
try:
# Create Redis connection for leader election
redis_url = f"redis://:{settings.REDIS_PASSWORD}@{settings.REDIS_HOST}:{settings.REDIS_PORT}/{settings.REDIS_DB}"
if settings.REDIS_TLS_ENABLED.lower() == "true":
use_tls = settings.REDIS_TLS_ENABLED.lower() == "true"
if use_tls:
redis_url = redis_url.replace("redis://", "rediss://")
redis_client = redis.from_url(redis_url, decode_responses=False)
# Handle SSL/TLS for self-signed certificates
connection_kwargs = {"decode_responses": False}
if use_tls:
connection_kwargs["ssl_cert_reqs"] = ssl.CERT_NONE
redis_client = redis.from_url(redis_url, **connection_kwargs)
await redis_client.ping()
# Use shared leader election service