diff options
-rw-r--r-- | config/resque.yml.example | 14 | ||||
-rw-r--r-- | lib/gitlab/redis.rb | 13 |
2 files changed, 14 insertions, 13 deletions
diff --git a/config/resque.yml.example b/config/resque.yml.example index 753c3308aa5..7b03132ff9e 100644 --- a/config/resque.yml.example +++ b/config/resque.yml.example @@ -3,13 +3,13 @@ # development: url: redis://localhost:6379 - sentinels: - - - host: localhost - port: 26380 # point to sentinel, not to redis port - - - host: slave2 - port: 26381 # point to sentinel, not to redis port +# sentinels: +# - +# host: localhost +# port: 26380 # point to sentinel, not to redis port +# - +# host: slave2 +# port: 26381 # point to sentinel, not to redis port test: url: redis://localhost:6379 production: diff --git a/lib/gitlab/redis.rb b/lib/gitlab/redis.rb index 70e333eb29f..17ac15a01dd 100644 --- a/lib/gitlab/redis.rb +++ b/lib/gitlab/redis.rb @@ -53,18 +53,19 @@ module Gitlab def redis_store_options config = raw_config_hash + redis_url = config.delete(:url) + redis_uri = URI.parse(redis_url) - redis_uri = URI.parse(config[:url]) if redis_uri.scheme == 'unix' # Redis::Store does not handle Unix sockets well, so let's do it for them config[:path] = redis_uri.path + config else - redis_hash = ::Redis::Store::Factory.extract_host_options_from_uri(config[:url]) - config.merge!(redis_hash) + redis_hash = ::Redis::Store::Factory.extract_host_options_from_uri(redis_url) + # order is important here, sentinels must be after the connection keys. + # {url: ..., port: ..., sentinels: [...]} + redis_hash.merge(config) end - - config.delete(:url) - config end def raw_config_hash |