mirror of
https://github.com/mastodon/mastodon.git
synced 2024-11-25 15:09:29 +00:00
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:
parent
07af8c05fd
commit
df92f010ad
|
@ -13,6 +13,8 @@ require_relative '../lib/mastodon/version'
|
||||||
|
|
||||||
Dotenv::Railtie.load
|
Dotenv::Railtie.load
|
||||||
|
|
||||||
|
require_relative '../lib/mastodon/redis_config'
|
||||||
|
|
||||||
module Mastodon
|
module Mastodon
|
||||||
class Application < Rails::Application
|
class Application < Rails::Application
|
||||||
# Settings in config/environments/* take precedence over those specified here.
|
# 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.
|
# Use a different logger for distributed setups.
|
||||||
# config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
|
# 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.
|
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
|
||||||
# config.action_controller.asset_host = 'http://assets.example.com'
|
# config.action_controller.asset_host = 'http://assets.example.com'
|
||||||
|
|
||||||
|
|
|
@ -1,30 +1,14 @@
|
||||||
# frozen_string_literal: true
|
# 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(
|
redis_connection = Redis.new(
|
||||||
url: ENV['REDIS_URL'],
|
url: ENV['REDIS_URL'],
|
||||||
driver: :hiredis
|
driver: :hiredis
|
||||||
)
|
)
|
||||||
|
|
||||||
cache_params = { expires_in: 10.minutes }
|
|
||||||
|
|
||||||
namespace = ENV.fetch('REDIS_NAMESPACE') { nil }
|
namespace = ENV.fetch('REDIS_NAMESPACE') { nil }
|
||||||
|
|
||||||
if namespace
|
if namespace
|
||||||
Redis.current = Redis::Namespace.new(namespace, redis: redis_connection)
|
Redis.current = Redis::Namespace.new(namespace, redis: redis_connection)
|
||||||
cache_params[:namespace] = namespace + '_cache'
|
|
||||||
else
|
else
|
||||||
Redis.current = redis_connection
|
Redis.current = redis_connection
|
||||||
end
|
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
|
Loading…
Reference in a new issue