mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
DEV: Don't configure rails_failover is db and redis is skipped.
This commit is contained in:
parent
58e52c0e4f
commit
e0fdf41537
@ -19,8 +19,14 @@ require 'action_controller/railtie'
|
|||||||
require 'action_view/railtie'
|
require 'action_view/railtie'
|
||||||
require 'action_mailer/railtie'
|
require 'action_mailer/railtie'
|
||||||
require 'sprockets/railtie'
|
require 'sprockets/railtie'
|
||||||
require 'rails_failover/active_record'
|
|
||||||
require 'rails_failover/redis'
|
if !GlobalSetting.skip_db
|
||||||
|
require 'rails_failover/active_record'
|
||||||
|
end
|
||||||
|
|
||||||
|
if !GlobalSetting.skip_redis
|
||||||
|
require 'rails_failover/redis'
|
||||||
|
end
|
||||||
|
|
||||||
# Plugin related stuff
|
# Plugin related stuff
|
||||||
require_relative '../lib/plugin_initialization_guard'
|
require_relative '../lib/plugin_initialization_guard'
|
||||||
|
@ -1,51 +1,55 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
message_bus_keepalive_interval = nil
|
if !GlobalSetting.skip_redis
|
||||||
|
message_bus_keepalive_interval = nil
|
||||||
|
|
||||||
RailsFailover::Redis.on_failover do
|
RailsFailover::Redis.on_failover do
|
||||||
message_bus_keepalive_interval = MessageBus.keepalive_interval
|
message_bus_keepalive_interval = MessageBus.keepalive_interval
|
||||||
MessageBus.keepalive_interval = -1 # Disable MessageBus keepalive_interval
|
MessageBus.keepalive_interval = -1 # Disable MessageBus keepalive_interval
|
||||||
Discourse.received_redis_readonly!
|
Discourse.received_redis_readonly!
|
||||||
end
|
end
|
||||||
|
|
||||||
RailsFailover::Redis.on_fallback do
|
RailsFailover::Redis.on_fallback do
|
||||||
Discourse.clear_redis_readonly!
|
Discourse.clear_redis_readonly!
|
||||||
Discourse.request_refresh!
|
Discourse.request_refresh!
|
||||||
MessageBus.keepalive_interval = message_bus_keepalive_interval
|
MessageBus.keepalive_interval = message_bus_keepalive_interval
|
||||||
end
|
|
||||||
|
|
||||||
if Rails.configuration.multisite
|
|
||||||
if ActiveRecord::Base.current_role == ActiveRecord::Base.reading_role
|
|
||||||
RailsMultisite::ConnectionManagement.default_connection_handler =
|
|
||||||
ActiveRecord::Base.connection_handlers[ActiveRecord::Base.reading_role]
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
RailsFailover::ActiveRecord.on_failover do
|
if !GlobalSetting.skip_db
|
||||||
RailsMultisite::ConnectionManagement.each_connection do
|
|
||||||
Discourse.enable_readonly_mode(Discourse::PG_READONLY_MODE_KEY)
|
|
||||||
Sidekiq.pause!("pg_failover") if !Sidekiq.paused?
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
RailsFailover::ActiveRecord.on_fallback do
|
|
||||||
RailsMultisite::ConnectionManagement.each_connection do
|
|
||||||
Discourse.disable_readonly_mode(Discourse::PG_READONLY_MODE_KEY)
|
|
||||||
Sidekiq.unpause! if Sidekiq.paused?
|
|
||||||
end
|
|
||||||
|
|
||||||
if Rails.configuration.multisite
|
if Rails.configuration.multisite
|
||||||
RailsMultisite::ConnectionManagement.default_connection_handler =
|
if ActiveRecord::Base.current_role == ActiveRecord::Base.reading_role
|
||||||
ActiveRecord::Base.connection_handlers[ActiveRecord::Base.writing_role]
|
RailsMultisite::ConnectionManagement.default_connection_handler =
|
||||||
|
ActiveRecord::Base.connection_handlers[ActiveRecord::Base.reading_role]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
RailsFailover::ActiveRecord.on_failover do
|
||||||
|
RailsMultisite::ConnectionManagement.each_connection do
|
||||||
|
Discourse.enable_readonly_mode(Discourse::PG_READONLY_MODE_KEY)
|
||||||
|
Sidekiq.pause!("pg_failover") if !Sidekiq.paused?
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
RailsFailover::ActiveRecord.on_fallback do
|
||||||
|
RailsMultisite::ConnectionManagement.each_connection do
|
||||||
|
Discourse.disable_readonly_mode(Discourse::PG_READONLY_MODE_KEY)
|
||||||
|
Sidekiq.unpause! if Sidekiq.paused?
|
||||||
|
end
|
||||||
|
|
||||||
|
if Rails.configuration.multisite
|
||||||
|
RailsMultisite::ConnectionManagement.default_connection_handler =
|
||||||
|
ActiveRecord::Base.connection_handlers[ActiveRecord::Base.writing_role]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
RailsFailover::ActiveRecord.register_force_reading_role_callback do
|
||||||
|
Discourse.redis.exists?(
|
||||||
|
Discourse::PG_READONLY_MODE_KEY,
|
||||||
|
Discourse::PG_FORCE_READONLY_MODE_KEY
|
||||||
|
)
|
||||||
|
rescue => e
|
||||||
|
Rails.logger.warn "#{e.class} #{e.message}: #{e.backtrace.join("\n")}"
|
||||||
|
false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
RailsFailover::ActiveRecord.register_force_reading_role_callback do
|
|
||||||
Discourse.redis.exists?(
|
|
||||||
Discourse::PG_READONLY_MODE_KEY,
|
|
||||||
Discourse::PG_FORCE_READONLY_MODE_KEY
|
|
||||||
)
|
|
||||||
rescue => e
|
|
||||||
Rails.logger.warn "#{e.class} #{e.message}: #{e.backtrace.join("\n")}"
|
|
||||||
false
|
|
||||||
end
|
|
||||||
|
Loading…
Reference in New Issue
Block a user