Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cache.rb « redis « gitlab « lib - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: a634f12345a22e1952f74dfb1181de12d28a07b0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# frozen_string_literal: true

# please require all dependencies below:
require_relative 'wrapper' unless defined?(::Rails) && ::Rails.root.present?

module Gitlab
  module Redis
    class Cache < ::Gitlab::Redis::Wrapper
      CACHE_NAMESPACE = 'cache:gitlab'
      DEFAULT_REDIS_CACHE_URL = 'redis://localhost:6380'
      REDIS_CACHE_CONFIG_ENV_VAR_NAME = 'GITLAB_REDIS_CACHE_CONFIG_FILE'

      class << self
        def default_url
          DEFAULT_REDIS_CACHE_URL
        end

        def config_file_name
          # if ENV set for this class, use it even if it points to a file does not exist
          file_name = ENV[REDIS_CACHE_CONFIG_ENV_VAR_NAME]
          return file_name unless file_name.nil?

          # otherwise, if config files exists for this class, use it
          file_name = config_file_path('redis.cache.yml')
          return file_name if File.file?(file_name)

          # this will force use of DEFAULT_REDIS_QUEUES_URL when config file is absent
          super
        end

        def instrumentation_class
          ::Gitlab::Instrumentation::Redis::Cache
        end
      end
    end
  end
end