Add periodic removal of older thumbnails for preview cards (#11304)

signup-info-prompt
Eugen Rochko 2019-07-15 07:50:14 +02:00 committed by GitHub
parent cecd0c3cb1
commit b3f44aa186
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 43 additions and 0 deletions

View File

@ -0,0 +1,18 @@
# frozen_string_literal: true
class Maintenance::UncachePreviewWorker
include Sidekiq::Worker
sidekiq_options queue: 'pull'
def perform(preview_card_id)
preview_card = PreviewCard.find(preview_card_id)
return if preview_card.image.blank?
preview_card.image.destroy
preview_card.save
rescue ActiveRecord::RecordNotFound
true
end
end

View File

@ -0,0 +1,22 @@
# frozen_string_literal: true
class Scheduler::PreviewCardsCleanupScheduler
include Sidekiq::Worker
sidekiq_options unique: :until_executed, retry: 0
def perform
Maintenance::UncachePreviewWorker.push_bulk(recent_link_preview_cards.pluck(:id))
Maintenance::UncachePreviewWorker.push_bulk(older_preview_cards.pluck(:id))
end
private
def recent_link_preview_cards
PreviewCard.where(type: :link).where('updated_at < ?', 1.month.ago)
end
def older_preview_cards
PreviewCard.where('updated_at < ?', 6.months.ago)
end
end

View File

@ -27,6 +27,9 @@
ip_cleanup_scheduler:
cron: '<%= Random.rand(0..59) %> <%= Random.rand(3..5) %> * * *'
class: Scheduler::IpCleanupScheduler
preview_cards_cleanup_scheduler:
cron: '<%= Random.rand(0..59) %> <%= Random.rand(3..5) %> * * *'
class: Scheduler::PreviewCardsCleanupScheduler
email_scheduler:
cron: '0 10 * * 2'
class: Scheduler::EmailScheduler