diff options
author | Mike Bayer <classic@zzzcomputing.com> | 2014-06-13 13:21:52 -0400 |
---|---|---|
committer | Mike Bayer <classic@zzzcomputing.com> | 2014-06-13 13:21:52 -0400 |
commit | 41de5519c956edec98e9f2619c7c90840c0920e0 (patch) | |
tree | ef216c97aafb24c8387abeed1a8c10765863030b | |
parent | de1b68ec2c650b34f88cf6faf41ba74ecd216285 (diff) | |
parent | 65cfbeb3be62f485551448cb56351860c3a97b19 (diff) | |
download | dogpile-cache-41de5519c956edec98e9f2619c7c90840c0920e0.tar.gz |
Merged in sauliusmenkevicius/dogpile.cache/socket-timeout-for-redis-backend (pull request #16)
socket timeout for the redis backend
-rw-r--r-- | dogpile/cache/backends/redis.py | 7 | ||||
-rw-r--r-- | tests/cache/test_redis_backend.py | 10 |
2 files changed, 14 insertions, 3 deletions
diff --git a/dogpile/cache/backends/redis.py b/dogpile/cache/backends/redis.py index 3080ca0..9766201 100644 --- a/dogpile/cache/backends/redis.py +++ b/dogpile/cache/backends/redis.py @@ -66,6 +66,8 @@ class RedisBackend(CacheBackend): Redis should expire it. This argument is only valid when ``distributed_lock`` is ``True``. + :param socket_timeout: float, seconds for socket timeout. Default is None (no timeout). + .. versionadded:: 0.5.0 :param lock_sleep: integer, number of seconds to sleep when failed to @@ -84,6 +86,7 @@ class RedisBackend(CacheBackend): self.port = arguments.pop('port', 6379) self.db = arguments.pop('db', 0) self.distributed_lock = arguments.get('distributed_lock', False) + self.socket_timeout = arguments.pop('socket_timeout', None) self.lock_timeout = arguments.get('lock_timeout', None) self.lock_sleep = arguments.get('lock_sleep', 0.1) @@ -98,10 +101,10 @@ class RedisBackend(CacheBackend): def _create_client(self): if self.url is not None: - return redis.StrictRedis.from_url(url=self.url) + return redis.StrictRedis.from_url(url=self.url, socket_timeout=self.socket_timeout) else: return redis.StrictRedis(host=self.host, password=self.password, - port=self.port, db=self.db) + port=self.port, db=self.db, socket_timeout=self.socket_timeout) def get_mutex(self, key): if self.distributed_lock: diff --git a/tests/cache/test_redis_backend.py b/tests/cache/test_redis_backend.py index 7f2729b..d6dddc6 100644 --- a/tests/cache/test_redis_backend.py +++ b/tests/cache/test_redis_backend.py @@ -89,8 +89,16 @@ class RedisConnectionTest(TestCase): } self._test_helper(MockStrictRedis, arguments) + def test_connect_with_socket_timeout(self, MockStrictRedis): + arguments = { + 'host': '127.0.0.1', + 'port': 6379, + 'socket_timeout': 0.5 + } + self._test_helper(MockStrictRedis, arguments) + def test_connect_with_url(self, MockStrictRedis): arguments = { 'url': 'redis://redis:password@127.0.0.1:6379/0' } - self._test_helper(MockStrictRedis.from_url, arguments)
\ No newline at end of file + self._test_helper(MockStrictRedis.from_url, arguments) |