Merge pull request #6394 from tgxworld/recover_broken_uploads

FIX: Onceoff job to recover missing post uploads.
This commit is contained in:
Guo Xiang Tan 2018-09-13 18:16:56 -07:00 committed by GitHub
commit 6a2589353b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 39 additions and 0 deletions

View File

@ -0,0 +1,22 @@
require_dependency "upload_recovery"
module Jobs
class RecoverPostUploads < Jobs::Onceoff
MIN_PERIOD = 30
MAX_PERIOD = 120
def execute_onceoff(args)
UploadRecovery.new.recover(Post.where(
"baked_at >= ?",
grace_period.days.ago
))
end
def grace_period
SiteSetting.purge_deleted_uploads_grace_period_days.clamp(
MIN_PERIOD,
MAX_PERIOD
)
end
end
end

View File

@ -0,0 +1,17 @@
require 'rails_helper'
RSpec.describe Jobs::RecoverPostUploads do
describe '#grace_period' do
it 'should restrict the grace period to the right range' do
SiteSetting.purge_deleted_uploads_grace_period_days =
described_class::MIN_PERIOD - 1
expect(described_class.new.grace_period).to eq(30)
SiteSetting.purge_deleted_uploads_grace_period_days =
described_class::MAX_PERIOD + 1
expect(described_class.new.grace_period).to eq(120)
end
end
end