updated Mongo Postgres Redis Controllers
This commit is contained in:
@@ -27,8 +27,9 @@ class RedisConn:
|
||||
max_retries: Maximum number of connection attempts.
|
||||
"""
|
||||
self.max_retries = max_retries
|
||||
self.config = config
|
||||
self.config = config or {}
|
||||
self._redis = None
|
||||
self._pool = None
|
||||
|
||||
# Add default parameters if not provided
|
||||
if "socket_timeout" not in self.config:
|
||||
@@ -45,6 +46,22 @@ class RedisConn:
|
||||
# Initialize the connection with retry logic
|
||||
self._connect_with_retry()
|
||||
|
||||
def __del__(self):
|
||||
"""Cleanup Redis connection and pool on object destruction."""
|
||||
self.close()
|
||||
|
||||
def close(self) -> None:
|
||||
"""Close Redis connection and connection pool."""
|
||||
try:
|
||||
if self._redis:
|
||||
self._redis.close()
|
||||
self._redis = None
|
||||
if self._pool:
|
||||
self._pool.disconnect()
|
||||
self._pool = None
|
||||
except Exception as e:
|
||||
print(f"Error closing Redis connection: {str(e)}")
|
||||
|
||||
def _connect_with_retry(self) -> None:
|
||||
"""
|
||||
Attempt to establish a Redis connection with retry logic.
|
||||
@@ -54,7 +71,10 @@ class RedisConn:
|
||||
"""
|
||||
for attempt in range(1, self.max_retries + 1):
|
||||
try:
|
||||
self._redis = Redis(**self.config)
|
||||
if self._pool is None:
|
||||
from redis import ConnectionPool
|
||||
self._pool = ConnectionPool(**self.config)
|
||||
self._redis = Redis(connection_pool=self._pool)
|
||||
if self.check_connection():
|
||||
return
|
||||
except (ConnectionError, TimeoutError) as e:
|
||||
|
||||
Reference in New Issue
Block a user