Skip to content

Commit 6ec2fd7

Browse files
committed
Merge pull request sebleier#89 from sebleier/unstable
Unstable
2 parents cc82dcf + 6e4be2c commit 6ec2fd7

File tree

3 files changed

+18
-3
lines changed

3 files changed

+18
-3
lines changed

redis_cache/backends/base.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ def __init__(self, server, params):
5757
self.parser_class = self.get_parser_class()
5858
self.pickle_version = self.get_pickle_version()
5959
self.socket_timeout = self.get_socket_timeout()
60+
self.socket_connect_timeout = self.get_socket_connect_timeout()
6061
self.connection_pool_class = self.get_connection_pool_class()
6162
self.connection_pool_class_kwargs = (
6263
self.get_connection_pool_class_kwargs()
@@ -106,13 +107,21 @@ def get_pickle_version(self):
106107
try:
107108
return int(_pickle_version)
108109
except (ValueError, TypeError):
109-
raise ImproperlyConfigured("pickle version value must be an integer")
110+
raise ImproperlyConfigured(
111+
"pickle version value must be an integer"
112+
)
110113

111114
def get_socket_timeout(self):
112115
return self.options.get('SOCKET_TIMEOUT', None)
113116

117+
def get_socket_connect_timeout(self):
118+
return self.options.get('SOCKET_CONNECT_TIMEOUT', None)
119+
114120
def get_connection_pool_class(self):
115-
pool_class = self.options.get('CONNECTION_POOL_CLASS', 'redis.ConnectionPool')
121+
pool_class = self.options.get(
122+
'CONNECTION_POOL_CLASS',
123+
'redis.ConnectionPool'
124+
)
116125
return import_class(pool_class)
117126

118127
def get_connection_pool_class_kwargs(self):
@@ -160,6 +169,7 @@ def create_client(self, server):
160169
db=self.db,
161170
password=self.password,
162171
socket_timeout=self.socket_timeout,
172+
socket_connect_timeout=self.socket_connect_timeout,
163173
)
164174
client = redis.Redis(**kwargs)
165175
kwargs.update(

redis_cache/connection.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ def get_connection_pool(
3131
connection_pool_class=None,
3232
connection_pool_class_kwargs=None,
3333
socket_timeout=None,
34+
socket_connect_timeout=None,
3435
**kwargs
3536
):
3637
connection_identifier = (host, port, db, unix_socket_path)
@@ -51,6 +52,10 @@ def get_connection_pool(
5152
'parser_class': parser_class,
5253
'socket_timeout': socket_timeout,
5354
}
55+
56+
if not issubclass(connection_class, UnixDomainSocketConnection):
57+
kwargs['socket_connect_timeout'] = socket_connect_timeout
58+
5459
kwargs.update(connection_pool_class_kwargs)
5560

5661
if unix_socket_path is None:

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
url="http://github.com/sebleier/django-redis-cache/",
66
author="Sean Bleier",
77
author_email="[email protected]",
8-
version="1.5.1",
8+
version="1.5.2",
99
packages=["redis_cache", "redis_cache.backends"],
1010
description="Redis Cache Backend for Django",
1111
install_requires=['redis>=2.10.3'],

0 commit comments

Comments
 (0)