summaryrefslogtreecommitdiff
path: root/kombu/transport/redis.py
diff options
context:
space:
mode:
authorMaxime Rouyrre <rouyrre+git@gmail.com>2013-06-13 11:00:07 +0200
committerMaxime Rouyrre <rouyrre+git@gmail.com>2013-06-13 11:00:07 +0200
commitf30f669adcc7ed3a0e64d72ed88b6cf90dfcba50 (patch)
treefc4a91f6e0fd1696775b5ebd2a7916448ca84274 /kombu/transport/redis.py
parent9204bed46dd3c639ed9557fee8e795ffe92efa76 (diff)
downloadkombu-f30f669adcc7ed3a0e64d72ed88b6cf90dfcba50.tar.gz
Added Unix socket connection support to the redis transport
cf. https://github.com/celery/celery/issues/1283 and https://github.com/piquadrat/celery-redis-unixsocket/issues/3
Diffstat (limited to 'kombu/transport/redis.py')
-rw-r--r--kombu/transport/redis.py19
1 files changed, 13 insertions, 6 deletions
diff --git a/kombu/transport/redis.py b/kombu/transport/redis.py
index 49bc3bfa..21b7e047 100644
--- a/kombu/transport/redis.py
+++ b/kombu/transport/redis.py
@@ -623,12 +623,19 @@ class Channel(virtual.Channel):
except ValueError:
raise ValueError(
'Database name must be int between 0 and limit - 1')
- return {'host': conninfo.hostname or '127.0.0.1',
- 'port': conninfo.port or DEFAULT_PORT,
- 'db': database,
- 'password': conninfo.password,
- 'max_connections': self.max_connections,
- 'socket_timeout': self.socket_timeout}
+ connparams = {'host': conninfo.hostname or '127.0.0.1',
+ 'port': conninfo.port or DEFAULT_PORT,
+ 'db': database,
+ 'password': conninfo.password,
+ 'max_connections': self.max_connections,
+ 'socket_timeout': self.socket_timeout}
+ if conninfo.hostname.split('://')[0] == 'socket':
+ connparams.update({
+ 'connection_class': redis.UnixDomainSocketConnection,
+ 'path': conninfo.hostname.split('://')[1]})
+ connparams.pop('host', None)
+ connparams.pop('port', None)
+ return connparams
def _create_client(self):
return self.Client(connection_pool=self.pool)