Class: Jobs::ScheduleBackup
Instance Method Summary
collapse
Methods inherited from Scheduled
#perform
Methods inherited from Base
acquire_cluster_concurrency_lock!, clear_cluster_concurrency_lock!, cluster_concurrency, cluster_concurrency_redis_key, delayed_perform, #error_context, get_cluster_concurrency, #last_db_duration, #log, #perform, #perform_immediately
Instance Method Details
#delete_prior_to_n_days ⇒ Object
#execute(args) ⇒ Object
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'app/jobs/scheduled/schedule_backup.rb', line 8
def execute(args)
delete_prior_to_n_days
return unless SiteSetting.enable_backups? && SiteSetting.automatic_backups_enabled?
store = BackupRestore::BackupStore.create
if latest_backup = store.latest_file
date = latest_backup.last_modified.to_date
return if (date + SiteSetting.backup_frequency.days) > Time.now.utc.to_date
end
::Jobs.cancel_scheduled_job(:create_backup)
time_of_day = Time.parse(SiteSetting.backup_time_of_day)
seconds = time_of_day.hour.hours + time_of_day.min.minutes + rand(10.minutes)
::Jobs.enqueue_in(seconds, :create_backup)
rescue => e
notify_user(e)
raise
end
|
#notify_user(ex) ⇒ Object