From 9a637836d098b27fd2065b2d7abf14e09a96f4a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20Hanol?= Date: Wed, 11 Feb 2015 21:50:17 +0100 Subject: [PATCH] FEATURE: readonly safeguard --- lib/discourse.rb | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/discourse.rb b/lib/discourse.rb index 81c7f4d7425..eb982e1dffa 100644 --- a/lib/discourse.rb +++ b/lib/discourse.rb @@ -170,13 +170,24 @@ module Discourse end def self.enable_readonly_mode - $redis.set readonly_mode_key, 1 + $redis.set(readonly_mode_key, 1) MessageBus.publish(readonly_channel, true) + keep_readonly_mode true end + def self.keep_readonly_mode + # extend the expiry by 1 minute every 30 seconds + Thread.new do + while readonly_mode? + $redis.expire(readonly_mode_key, 1.minute) + sleep 30.seconds + end + end + end + def self.disable_readonly_mode - $redis.del readonly_mode_key + $redis.del(readonly_mode_key) MessageBus.publish(readonly_channel, false) true end