mirror of
https://github.com/discourse/discourse.git
synced 2025-05-21 18:12:32 +08:00
FIX: Killing a Unicorn worker shouldn't kill a running backup or restore process
By spawning and forking the backup and restore, the process owner changes from 🦄 to the init process.
This commit is contained in:

committed by
Gerhard Schlager

parent
1febf11362
commit
57095f0bb7
@ -1,38 +1,40 @@
|
||||
# frozen_string_literal: true
|
||||
# This script is used by BackupRestore.backup! and BackupRestore.restore!
|
||||
|
||||
require File.expand_path("../../config/environment", __FILE__)
|
||||
fork do
|
||||
require File.expand_path("../../config/environment", __FILE__)
|
||||
|
||||
def backup
|
||||
user_id, opts = parse_params
|
||||
BackupRestore::Backuper.new(user_id, opts).run
|
||||
end
|
||||
def backup
|
||||
user_id, opts = parse_params
|
||||
BackupRestore::Backuper.new(user_id, opts).run
|
||||
end
|
||||
|
||||
def restore
|
||||
user_id, opts = parse_params
|
||||
def restore
|
||||
user_id, opts = parse_params
|
||||
|
||||
BackupRestore::Restorer.new(
|
||||
user_id: user_id,
|
||||
filename: opts[:filename],
|
||||
factory: BackupRestore::Factory.new(
|
||||
BackupRestore::Restorer.new(
|
||||
user_id: user_id,
|
||||
client_id: opts[:client_id]
|
||||
),
|
||||
disable_emails: opts.fetch(:disable_emails, true)
|
||||
).run
|
||||
end
|
||||
filename: opts[:filename],
|
||||
factory: BackupRestore::Factory.new(
|
||||
user_id: user_id,
|
||||
client_id: opts[:client_id]
|
||||
),
|
||||
disable_emails: opts.fetch(:disable_emails, true)
|
||||
).run
|
||||
end
|
||||
|
||||
def parse_params
|
||||
user_id = ARGV[1].to_i
|
||||
opts = JSON.parse(ARGV[2], symbolize_names: true)
|
||||
[user_id, opts]
|
||||
end
|
||||
def parse_params
|
||||
user_id = ARGV[1].to_i
|
||||
opts = JSON.parse(ARGV[2], symbolize_names: true)
|
||||
[user_id, opts]
|
||||
end
|
||||
|
||||
case ARGV[0]
|
||||
when "backup"
|
||||
backup
|
||||
when "restore"
|
||||
restore
|
||||
else
|
||||
raise "Unknown argument: #{ARGV[0]}"
|
||||
case ARGV[0]
|
||||
when "backup"
|
||||
backup
|
||||
when "restore"
|
||||
restore
|
||||
else
|
||||
raise "Unknown argument: #{ARGV[0]}"
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user