Class: UpscaleProposalCleanupWorker
- Inherits:
-
Object
- Object
- UpscaleProposalCleanupWorker
- Includes:
- Sidekiq::Worker
- Defined in:
- app/workers/upscale_proposal_cleanup_worker.rb
Overview
Cleans up stale UpscaleProposal records and their orphaned ImageKit assets.
A proposal is considered stale when it has been pending for longer than
UpscaleProposal::STALE_AFTER (default 48 hours) — meaning the user never
acted on the compare slider. The embryonic ImageKit file is deleted first,
then the DB record is destroyed.
Scheduled daily via sidekiq_production_schedule.yml.
Instance Method Summary collapse
Instance Method Details
#perform ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'app/workers/upscale_proposal_cleanup_worker.rb', line 17 def perform stale = UpscaleProposal.stale.to_a if stale.empty? Rails.logger.info '[UpscaleProposalCleanupWorker] No stale proposals to clean up' return end Rails.logger.info "[UpscaleProposalCleanupWorker] Cleaning #{stale.size} stale proposal(s)" deleted = 0 errored = 0 stale.each do |proposal| proposal.delete_ik_asset! proposal.destroy deleted += 1 rescue StandardError => e errored += 1 Rails.logger.error "[UpscaleProposalCleanupWorker] Failed to clean proposal #{proposal.id}: #{e.}" ErrorReporting.warning(e) if defined?(ErrorReporting) end Rails.logger.info "[UpscaleProposalCleanupWorker] Done — deleted: #{deleted}, errors: #{errored}" end |