mirror of
https://github.com/discourse/discourse.git
synced 2025-05-21 18:12:32 +08:00
display/preload the logs of the last/current operation
This commit is contained in:
@ -7,6 +7,7 @@ module BackupRestore
|
||||
|
||||
DUMP_FILE = "dump.sql"
|
||||
METADATA_FILE = "meta.json"
|
||||
LOGS_CHANNEL = "/admin/backups/logs"
|
||||
|
||||
def self.backup!(user_id, publish_to_message_bus = false)
|
||||
exporter = Export::Exporter.new(user_id, publish_to_message_bus)
|
||||
@ -32,8 +33,10 @@ module BackupRestore
|
||||
end
|
||||
|
||||
def self.mark_as_running!
|
||||
# TODO: should acquire a lock and raise an exception if already running!
|
||||
# TODO: for more safety, it should acquire a lock
|
||||
# and raise an exception if already running!
|
||||
$redis.set(running_key, "1")
|
||||
save_start_logs_message_id
|
||||
end
|
||||
|
||||
def self.is_operation_running?
|
||||
@ -59,6 +62,11 @@ module BackupRestore
|
||||
}
|
||||
end
|
||||
|
||||
def self.logs
|
||||
id = start_logs_message_id
|
||||
MessageBus.backlog(LOGS_CHANNEL, id).map { |m| m.data }
|
||||
end
|
||||
|
||||
def self.current_version
|
||||
ActiveRecord::Migrator.current_version
|
||||
end
|
||||
@ -96,6 +104,19 @@ module BackupRestore
|
||||
$redis.del(shutdown_signal_key)
|
||||
end
|
||||
|
||||
def self.save_start_logs_message_id
|
||||
id = MessageBus.last_id(LOGS_CHANNEL)
|
||||
$redis.set(start_logs_message_id_key, id)
|
||||
end
|
||||
|
||||
def self.start_logs_message_id
|
||||
$redis.get(start_logs_message_id_key).to_i
|
||||
end
|
||||
|
||||
def self.start_logs_message_id_key
|
||||
"start_logs_message_id"
|
||||
end
|
||||
|
||||
def self.start!(runner)
|
||||
child = fork do
|
||||
begin
|
||||
|
Reference in New Issue
Block a user