diff options
Diffstat (limited to 'lib/gitlab/redis/cache.rb')
-rw-r--r-- | lib/gitlab/redis/cache.rb | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/lib/gitlab/redis/cache.rb b/lib/gitlab/redis/cache.rb index 043f14630d5..647573e59fe 100644 --- a/lib/gitlab/redis/cache.rb +++ b/lib/gitlab/redis/cache.rb @@ -2,6 +2,16 @@ module Gitlab module Redis + # Match signature in + # https://github.com/rails/rails/blob/v6.1.7.2/activesupport/lib/active_support/cache/redis_cache_store.rb#L59 + ERROR_HANDLER = ->(method:, returning:, exception:) do + Gitlab::ErrorTracking.log_exception( + exception, + method: method, + returning: returning.inspect + ) + end + class Cache < ::Gitlab::Redis::Wrapper CACHE_NAMESPACE = 'cache:gitlab' @@ -12,9 +22,14 @@ module Gitlab redis: pool, compress: Gitlab::Utils.to_boolean(ENV.fetch('ENABLE_REDIS_CACHE_COMPRESSION', '1')), namespace: CACHE_NAMESPACE, - expires_in: ENV.fetch('GITLAB_RAILS_CACHE_DEFAULT_TTL_SECONDS', 8.hours).to_i # Cache should not grow forever + expires_in: default_ttl_seconds, + error_handler: ::Gitlab::Redis::ERROR_HANDLER } end + + def self.default_ttl_seconds + ENV.fetch('GITLAB_RAILS_CACHE_DEFAULT_TTL_SECONDS', 8.hours).to_i + end end end end |