mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 22:43:33 +08:00
FIX: Discourse.keep_readonly_mode
spins a new thread each time it is called.
This commit is contained in:
@ -294,7 +294,12 @@ module Discourse
|
||||
def self.keep_readonly_mode(key)
|
||||
# extend the expiry by 1 minute every 30 seconds
|
||||
unless Rails.env.test?
|
||||
Thread.new do
|
||||
@threads ||= {}
|
||||
|
||||
active_thread = @threads[key]
|
||||
|
||||
unless active_thread&.alive?
|
||||
@threads[key] = Thread.new do
|
||||
while readonly_mode?(key)
|
||||
$redis.expire(key, READONLY_MODE_KEY_TTL)
|
||||
sleep 30.seconds
|
||||
@ -302,6 +307,7 @@ module Discourse
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def self.disable_readonly_mode(key = READONLY_MODE_KEY)
|
||||
$redis.del(key)
|
||||
|
Reference in New Issue
Block a user