diff options
author | Maxime Rouyrre <rouyrre+git@gmail.com> | 2013-06-13 11:00:07 +0200 |
---|---|---|
committer | Maxime Rouyrre <rouyrre+git@gmail.com> | 2013-06-13 11:00:07 +0200 |
commit | f30f669adcc7ed3a0e64d72ed88b6cf90dfcba50 (patch) | |
tree | fc4a91f6e0fd1696775b5ebd2a7916448ca84274 /kombu/transport/redis.py | |
parent | 9204bed46dd3c639ed9557fee8e795ffe92efa76 (diff) | |
download | kombu-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.py | 19 |
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) |