Commit 6ec2fd72 authored by Sean Bleier's avatar Sean Bleier

Merge pull request #89 from sebleier/unstable

Unstable
parents cc82dcf2 6e4be2c3
...@@ -57,6 +57,7 @@ class BaseRedisCache(BaseCache): ...@@ -57,6 +57,7 @@ class BaseRedisCache(BaseCache):
self.parser_class = self.get_parser_class() self.parser_class = self.get_parser_class()
self.pickle_version = self.get_pickle_version() self.pickle_version = self.get_pickle_version()
self.socket_timeout = self.get_socket_timeout() self.socket_timeout = self.get_socket_timeout()
self.socket_connect_timeout = self.get_socket_connect_timeout()
self.connection_pool_class = self.get_connection_pool_class() self.connection_pool_class = self.get_connection_pool_class()
self.connection_pool_class_kwargs = ( self.connection_pool_class_kwargs = (
self.get_connection_pool_class_kwargs() self.get_connection_pool_class_kwargs()
...@@ -106,13 +107,21 @@ class BaseRedisCache(BaseCache): ...@@ -106,13 +107,21 @@ class BaseRedisCache(BaseCache):
try: try:
return int(_pickle_version) return int(_pickle_version)
except (ValueError, TypeError): except (ValueError, TypeError):
raise ImproperlyConfigured("pickle version value must be an integer") raise ImproperlyConfigured(
"pickle version value must be an integer"
)
def get_socket_timeout(self): def get_socket_timeout(self):
return self.options.get('SOCKET_TIMEOUT', None) return self.options.get('SOCKET_TIMEOUT', None)
def get_socket_connect_timeout(self):
return self.options.get('SOCKET_CONNECT_TIMEOUT', None)
def get_connection_pool_class(self): def get_connection_pool_class(self):
pool_class = self.options.get('CONNECTION_POOL_CLASS', 'redis.ConnectionPool') pool_class = self.options.get(
'CONNECTION_POOL_CLASS',
'redis.ConnectionPool'
)
return import_class(pool_class) return import_class(pool_class)
def get_connection_pool_class_kwargs(self): def get_connection_pool_class_kwargs(self):
...@@ -160,6 +169,7 @@ class BaseRedisCache(BaseCache): ...@@ -160,6 +169,7 @@ class BaseRedisCache(BaseCache):
db=self.db, db=self.db,
password=self.password, password=self.password,
socket_timeout=self.socket_timeout, socket_timeout=self.socket_timeout,
socket_connect_timeout=self.socket_connect_timeout,
) )
client = redis.Redis(**kwargs) client = redis.Redis(**kwargs)
kwargs.update( kwargs.update(
......
...@@ -31,6 +31,7 @@ class CacheConnectionPool(object): ...@@ -31,6 +31,7 @@ class CacheConnectionPool(object):
connection_pool_class=None, connection_pool_class=None,
connection_pool_class_kwargs=None, connection_pool_class_kwargs=None,
socket_timeout=None, socket_timeout=None,
socket_connect_timeout=None,
**kwargs **kwargs
): ):
connection_identifier = (host, port, db, unix_socket_path) connection_identifier = (host, port, db, unix_socket_path)
...@@ -51,6 +52,10 @@ class CacheConnectionPool(object): ...@@ -51,6 +52,10 @@ class CacheConnectionPool(object):
'parser_class': parser_class, 'parser_class': parser_class,
'socket_timeout': socket_timeout, 'socket_timeout': socket_timeout,
} }
if not issubclass(connection_class, UnixDomainSocketConnection):
kwargs['socket_connect_timeout'] = socket_connect_timeout
kwargs.update(connection_pool_class_kwargs) kwargs.update(connection_pool_class_kwargs)
if unix_socket_path is None: if unix_socket_path is None:
......
...@@ -5,7 +5,7 @@ setup( ...@@ -5,7 +5,7 @@ setup(
url="http://github.com/sebleier/django-redis-cache/", url="http://github.com/sebleier/django-redis-cache/",
author="Sean Bleier", author="Sean Bleier",
author_email="sebleier@gmail.com", author_email="sebleier@gmail.com",
version="1.5.1", version="1.5.2",
packages=["redis_cache", "redis_cache.backends"], packages=["redis_cache", "redis_cache.backends"],
description="Redis Cache Backend for Django", description="Redis Cache Backend for Django",
install_requires=['redis>=2.10.3'], install_requires=['redis>=2.10.3'],
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment