summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDJ Mountney <david@twkie.net>2016-05-29 12:53:30 -0700
committerDJ Mountney <david@twkie.net>2016-05-29 12:53:30 -0700
commitc8eb1dccabe5cd961895127dbbbf46d3eee4aebd (patch)
treeff0cbe5365a23825fb3851bf9b3ca528c534ed63
parent7d57b110934f50225142789a93a0d4f54cf446f7 (diff)
downloadgitlab-ce-current-settings-use-request-store-during-request.tar.gz
Try and use cache for application settings even when the db is not connectedcurrent-settings-use-request-store-during-request
-rw-r--r--app/models/application_setting.rb4
-rw-r--r--lib/gitlab/current_settings.rb4
2 files changed, 6 insertions, 2 deletions
diff --git a/app/models/application_setting.rb b/app/models/application_setting.rb
index 9a14954b4a7..33069d66d78 100644
--- a/app/models/application_setting.rb
+++ b/app/models/application_setting.rb
@@ -98,6 +98,10 @@ class ApplicationSetting < ActiveRecord::Base
Rails.cache.delete(CACHE_KEY)
end
+ def self.cached
+ Rails.cache.fetch(CACHE_KEY)
+ end
+
def self.create_from_defaults
create(
default_projects_limit: Settings.gitlab['default_projects_limit'],
diff --git a/lib/gitlab/current_settings.rb b/lib/gitlab/current_settings.rb
index 59e86707d3e..1a4ddd38513 100644
--- a/lib/gitlab/current_settings.rb
+++ b/lib/gitlab/current_settings.rb
@@ -9,9 +9,9 @@ module Gitlab
end
def ensure_application_settings!
- settings = nil
+ settings = ::ApplicationSetting.cached
- if connect_to_db?
+ if !settings && connect_to_db?
settings = ::ApplicationSetting.current
settings ||= ::ApplicationSetting.create_from_defaults unless ActiveRecord::Migrator.needs_migration?
end