mirror of
https://github.com/discourse/discourse.git
synced 2024-11-24 04:13:22 +08:00
25 lines
618 B
Ruby
25 lines
618 B
Ruby
|
module Jobs
|
||
|
|
||
|
class CleanUpUploads < Jobs::Scheduled
|
||
|
recurrence { hourly }
|
||
|
|
||
|
def execute(args)
|
||
|
|
||
|
uploads_used_in_posts = PostUpload.uniq.pluck(:upload_id)
|
||
|
uploads_used_as_avatars = User.uniq.where('uploaded_avatar_id IS NOT NULL').pluck(:uploaded_avatar_id)
|
||
|
|
||
|
grace_period = [SiteSetting.uploads_grace_period_in_hours, 1].max
|
||
|
|
||
|
Upload.where("created_at < ?", grace_period.hour.ago)
|
||
|
.where("id NOT IN (?)", uploads_used_in_posts + uploads_used_as_avatars)
|
||
|
.find_each do |upload|
|
||
|
# disable this for now.
|
||
|
#upload.destroy
|
||
|
end
|
||
|
|
||
|
end
|
||
|
|
||
|
end
|
||
|
|
||
|
end
|