Fix redis ssl issues 2
This commit is contained in:
@@ -100,24 +100,18 @@ 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
|
||||
from shared.redis_utils import RedisConnectionManager
|
||||
|
||||
try:
|
||||
# Create Redis connection for leader election
|
||||
redis_url = f"redis://:{settings.REDIS_PASSWORD}@{settings.REDIS_HOST}:{settings.REDIS_PORT}/{settings.REDIS_DB}"
|
||||
use_tls = settings.REDIS_TLS_ENABLED.lower() == "true"
|
||||
if use_tls:
|
||||
if settings.REDIS_TLS_ENABLED.lower() == "true":
|
||||
redis_url = redis_url.replace("redis://", "rediss://")
|
||||
|
||||
# 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()
|
||||
# Create Redis connection using shared manager (handles SSL, pooling, health checks)
|
||||
self.redis_manager = await RedisConnectionManager.create(redis_url, decode_responses=False)
|
||||
redis_client = self.redis_manager.get_client()
|
||||
|
||||
# Use shared leader election service
|
||||
self.leader_election = LeaderElectionService(
|
||||
@@ -180,6 +174,11 @@ class OrchestratorService(StandardFastAPIService):
|
||||
await self.scheduler_service.stop()
|
||||
self.logger.info("Orchestrator scheduler service stopped")
|
||||
|
||||
# Close Redis manager (handles client and pool cleanup)
|
||||
if hasattr(self, 'redis_manager') and self.redis_manager:
|
||||
await self.redis_manager.close()
|
||||
self.logger.info("Redis connection closed")
|
||||
|
||||
|
||||
def get_service_features(self):
|
||||
"""Return orchestrator-specific features"""
|
||||
|
||||
Reference in New Issue
Block a user