Allow Postgres to trigger readonly mode for the site.

This commit is contained in:
Robin Ward
2015-04-29 11:49:58 -04:00
parent c10a8d481d
commit 16408cee06
6 changed files with 25 additions and 25 deletions

View File

@ -4,19 +4,6 @@
require_dependency 'cache'
class DiscourseRedis
def self.recently_readonly?
return false unless @last_read_only
@last_read_only > 15.seconds.ago
end
def self.received_readonly!
@last_read_only = Time.now
end
def self.clear_readonly!
@last_read_only = nil
end
def self.raw_connection(config = nil)
config ||= self.config
redis_opts = {host: config['host'], port: config['port'], db: config['db']}
@ -51,10 +38,10 @@ class DiscourseRedis
yield
rescue Redis::CommandError => ex
if ex.message =~ /READONLY/
unless DiscourseRedis.recently_readonly?
unless Discourse.recently_readonly?
STDERR.puts "WARN: Redis is in a readonly state. Performed a noop"
end
DiscourseRedis.received_readonly!
Discourse.received_readonly!
else
raise ex
end