DEV: Allow writes to PG even if Redis is readonly mode.

Previously, I thought it was better to drop the site into reading mode
when Redis has failed over to the replica but it created more errors
while Redis is in readonly mode since ActiveRecord would prevent us from
writing to PG even though PG is up.
This commit is contained in:
Guo Xiang Tan 2020-07-21 12:32:50 +08:00
parent cebd8da299
commit 031a6616a3
No known key found for this signature in database
GPG Key ID: FBD110179AAC1F20

View File

@ -55,16 +55,12 @@ if defined?(RailsFailover::ActiveRecord)
Discourse.redis.exists?( Discourse.redis.exists?(
Discourse::PG_READONLY_MODE_KEY, Discourse::PG_READONLY_MODE_KEY,
Discourse::PG_FORCE_READONLY_MODE_KEY Discourse::PG_FORCE_READONLY_MODE_KEY
) || (
GlobalSetting.redis_config[:replica_host] &&
Discourse.redis.connection[:host] == GlobalSetting.redis_config[:replica_host]
) )
rescue => e rescue => e
if e.is_a?(Redis::CannotConnectError) if e.is_a?(Redis::CannotConnectError)
true
else
Rails.logger.warn "#{e.class} #{e.message}: #{e.backtrace.join("\n")}" Rails.logger.warn "#{e.class} #{e.message}: #{e.backtrace.join("\n")}"
end
false false
end end
end
end end