Set config.cache_store in environments file. (#3219)
* Set config.cache_store in application.rb * Set config.cache_store in environments. * fix code format.
This commit is contained in:
		| @@ -13,6 +13,8 @@ require_relative '../lib/mastodon/version' | ||||
|  | ||||
| Dotenv::Railtie.load | ||||
|  | ||||
| require_relative '../lib/mastodon/redis_config' | ||||
|  | ||||
| module Mastodon | ||||
|   class Application < Rails::Application | ||||
|     # Settings in config/environments/* take precedence over those specified here. | ||||
|   | ||||
| @@ -50,6 +50,9 @@ Rails.application.configure do | ||||
|   # Use a different logger for distributed setups. | ||||
|   # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new) | ||||
|  | ||||
|   # Use a different cache store in production. | ||||
|   config.cache_store = :redis_store, ENV['REDIS_URL'], REDIS_CACHE_PARAMS | ||||
|  | ||||
|   # Enable serving of images, stylesheets, and JavaScripts from an asset server. | ||||
|   # config.action_controller.asset_host = 'http://assets.example.com' | ||||
|  | ||||
|   | ||||
| @@ -1,30 +1,14 @@ | ||||
| # frozen_string_literal: true | ||||
|  | ||||
| if ENV['REDIS_URL'].blank? | ||||
|   password = ENV.fetch('REDIS_PASSWORD') { '' } | ||||
|   host     = ENV.fetch('REDIS_HOST') { 'localhost' } | ||||
|   port     = ENV.fetch('REDIS_PORT') { 6379 } | ||||
|   db       = ENV.fetch('REDIS_DB') { 0 } | ||||
|  | ||||
|   ENV['REDIS_URL'] = "redis://#{password.blank? ? '' : ":#{password}@"}#{host}:#{port}/#{db}" | ||||
| end | ||||
|  | ||||
| redis_connection = Redis.new( | ||||
|   url: ENV['REDIS_URL'], | ||||
|   driver: :hiredis | ||||
| ) | ||||
|  | ||||
| cache_params = { expires_in: 10.minutes } | ||||
|  | ||||
| namespace = ENV.fetch('REDIS_NAMESPACE') { nil } | ||||
|  | ||||
| if namespace | ||||
|   Redis.current = Redis::Namespace.new(namespace, redis: redis_connection) | ||||
|   cache_params[:namespace] = namespace + '_cache' | ||||
| else | ||||
|   Redis.current = redis_connection | ||||
| end | ||||
|  | ||||
| Rails.application.configure do | ||||
|   config.cache_store = :redis_store, ENV['REDIS_URL'], cache_params | ||||
| end | ||||
|   | ||||
							
								
								
									
										17
									
								
								lib/mastodon/redis_config.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								lib/mastodon/redis_config.rb
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| # frozen_string_literal: true | ||||
|  | ||||
| if ENV['REDIS_URL'].blank? | ||||
|   password = ENV.fetch('REDIS_PASSWORD') { '' } | ||||
|   host     = ENV.fetch('REDIS_HOST') { 'localhost' } | ||||
|   port     = ENV.fetch('REDIS_PORT') { 6379 } | ||||
|   db       = ENV.fetch('REDIS_DB') { 0 } | ||||
|  | ||||
|   ENV['REDIS_URL'] = "redis://#{password.blank? ? '' : ":#{password}@"}#{host}:#{port}/#{db}" | ||||
| end | ||||
|  | ||||
| namespace = ENV.fetch('REDIS_NAMESPACE') { nil } | ||||
| cache_namespace = namespace ? namespace + '_cache' : 'cache' | ||||
| REDIS_CACHE_PARAMS = { | ||||
|   expires_in: 10.minutes, | ||||
|   namespace: cache_namespace, | ||||
| }.freeze | ||||
		Reference in New Issue
	
	Block a user