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,10 +294,16 @@ module Discourse
|
|||||||
def self.keep_readonly_mode(key)
|
def self.keep_readonly_mode(key)
|
||||||
# extend the expiry by 1 minute every 30 seconds
|
# extend the expiry by 1 minute every 30 seconds
|
||||||
unless Rails.env.test?
|
unless Rails.env.test?
|
||||||
Thread.new do
|
@threads ||= {}
|
||||||
while readonly_mode?(key)
|
|
||||||
$redis.expire(key, READONLY_MODE_KEY_TTL)
|
active_thread = @threads[key]
|
||||||
sleep 30.seconds
|
|
||||||
|
unless active_thread&.alive?
|
||||||
|
@threads[key] = Thread.new do
|
||||||
|
while readonly_mode?(key)
|
||||||
|
$redis.expire(key, READONLY_MODE_KEY_TTL)
|
||||||
|
sleep 30.seconds
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Reference in New Issue
Block a user