Source code for the custom Mastodon (Glitchsoc) instance on berserker.town.
https://berserker.town/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
509 B
25 lines
509 B
# frozen_string_literal: true
|
|
|
|
class Vacuum::BackupsVacuum
|
|
def initialize(retention_period)
|
|
@retention_period = retention_period
|
|
end
|
|
|
|
def perform
|
|
vacuum_expired_backups! if retention_period?
|
|
end
|
|
|
|
private
|
|
|
|
def vacuum_expired_backups!
|
|
backups_past_retention_period.in_batches.destroy_all
|
|
end
|
|
|
|
def backups_past_retention_period
|
|
Backup.unscoped.where(Backup.arel_table[:created_at].lt(@retention_period.ago))
|
|
end
|
|
|
|
def retention_period?
|
|
@retention_period.present?
|
|
end
|
|
end
|
|
|