Fix redis ssl issues 2
This commit is contained in:
@@ -39,6 +39,7 @@ class DeliveryTrackingService:
|
||||
self.database_manager = database_manager
|
||||
self.scheduler = AsyncIOScheduler()
|
||||
self._leader_election = None
|
||||
self._redis_manager = None
|
||||
self._redis_client = None
|
||||
self._scheduler_started = False
|
||||
self.instance_id = str(uuid4())[:8] # Short instance ID for logging
|
||||
@@ -56,9 +57,8 @@ class DeliveryTrackingService:
|
||||
|
||||
async def _setup_leader_election(self):
|
||||
"""Setup Redis-based leader election for horizontal scaling"""
|
||||
import ssl
|
||||
from shared.leader_election import LeaderElectionService
|
||||
import redis.asyncio as redis
|
||||
from shared.redis_utils import RedisConnectionManager
|
||||
|
||||
# Build Redis URL from config
|
||||
redis_url = getattr(self.config, 'REDIS_URL', None)
|
||||
@@ -69,13 +69,9 @@ class DeliveryTrackingService:
|
||||
redis_db = getattr(self.config, 'REDIS_DB', 0)
|
||||
redis_url = f"redis://:{redis_password}@{redis_host}:{redis_port}/{redis_db}"
|
||||
|
||||
# Handle SSL/TLS for self-signed certificates
|
||||
connection_kwargs = {"decode_responses": False}
|
||||
if redis_url and redis_url.startswith("rediss://"):
|
||||
connection_kwargs["ssl_cert_reqs"] = ssl.CERT_NONE
|
||||
|
||||
self._redis_client = redis.from_url(redis_url, **connection_kwargs)
|
||||
await self._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)
|
||||
self._redis_client = self._redis_manager.get_client()
|
||||
|
||||
# Create leader election service
|
||||
self._leader_election = LeaderElectionService(
|
||||
@@ -151,9 +147,9 @@ class DeliveryTrackingService:
|
||||
# Stop scheduler
|
||||
await self._stop_scheduler()
|
||||
|
||||
# Close Redis
|
||||
if self._redis_client:
|
||||
await self._redis_client.close()
|
||||
# Close Redis manager (handles client and pool cleanup)
|
||||
if self._redis_manager:
|
||||
await self._redis_manager.close()
|
||||
|
||||
@property
|
||||
def is_leader(self) -> bool:
|
||||
|
||||
Reference in New Issue
Block a user