mirror of
https://github.com/codeninjasllc/discourse.git
synced 2024-12-17 19:12:37 -05:00
FIX: clean up uploads job
This commit is contained in:
parent
6064c8e56e
commit
e9a293beeb
2 changed files with 22 additions and 9 deletions
|
@ -10,13 +10,13 @@ module Jobs
|
||||||
|
|
||||||
Upload.where("created_at < ?", grace_period.hour.ago)
|
Upload.where("created_at < ?", grace_period.hour.ago)
|
||||||
.where("retain_hours IS NULL OR created_at < current_timestamp - interval '1 hour' * retain_hours")
|
.where("retain_hours IS NULL OR created_at < current_timestamp - interval '1 hour' * retain_hours")
|
||||||
.where("id NOT IN (SELECT upload_id FROM post_uploads)")
|
.where("id NOT IN (SELECT upload_id FROM post_uploads WHERE upload_id IS NOT NULL)")
|
||||||
.where("id NOT IN (SELECT uploaded_avatar_id FROM users)")
|
.where("id NOT IN (SELECT uploaded_avatar_id FROM users WHERE uploaded_avatar_id IS NOT NULL)")
|
||||||
.where("id NOT IN (SELECT gravatar_upload_id FROM user_avatars)")
|
.where("id NOT IN (SELECT gravatar_upload_id FROM user_avatars WHERE gravatar_upload_id IS NOT NULL)")
|
||||||
.where("url NOT IN (SELECT profile_background FROM user_profiles)")
|
.where("url NOT IN (SELECT profile_background FROM user_profiles WHERE LENGTH(COALESCE(profile_background, '')) > 0)")
|
||||||
.where("url NOT IN (SELECT card_background FROM user_profiles)")
|
.where("url NOT IN (SELECT card_background FROM user_profiles WHERE LENGTH(COALESCE(card_background, '')) > 0)")
|
||||||
.where("url NOT IN (SELECT logo_url FROM categories)")
|
.where("url NOT IN (SELECT logo_url FROM categories WHERE LENGTH(COALESCE(logo_url, '')) > 0)")
|
||||||
.where("url NOT IN (SELECT background_url FROM categories)")
|
.where("url NOT IN (SELECT background_url FROM categories WHERE LENGTH(COALESCE(background_url, '')) > 0)")
|
||||||
.destroy_all
|
.destroy_all
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -3,8 +3,21 @@ require 'rails_helper'
|
||||||
require_dependency 'jobs/scheduled/clean_up_uploads'
|
require_dependency 'jobs/scheduled/clean_up_uploads'
|
||||||
|
|
||||||
describe Jobs::CleanUpUploads do
|
describe Jobs::CleanUpUploads do
|
||||||
it "runs correctly without crashing" do
|
|
||||||
|
before do
|
||||||
|
Upload.destroy_all
|
||||||
SiteSetting.clean_up_uploads = true
|
SiteSetting.clean_up_uploads = true
|
||||||
Jobs::CleanUpUploads.new.execute(nil)
|
SiteSetting.clean_orphan_uploads_grace_period_hours = 1
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "deletes orphan uploads" do
|
||||||
|
Fabricate(:upload, created_at: 2.hours.ago)
|
||||||
|
|
||||||
|
expect(Upload.count).to be(1)
|
||||||
|
|
||||||
|
Jobs::CleanUpUploads.new.execute(nil)
|
||||||
|
|
||||||
|
expect(Upload.count).to be(0)
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue