2025-01-28 01:16:17 +08:00
|
|
|
# app/jobs/clean_ahoy_data_job.rb
|
|
|
|
class CleanAhoyDataJob < ApplicationJob
|
|
|
|
queue_as :default
|
2025-01-28 01:03:06 +08:00
|
|
|
|
|
|
|
def perform
|
|
|
|
cleanup_old_events
|
|
|
|
cleanup_old_visits
|
|
|
|
log_cleanup_results
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def cleanup_old_events
|
|
|
|
cutoff_date = 3.months.ago
|
|
|
|
deleted_events_count = Ahoy::Event.where("time < ?", cutoff_date).delete_all
|
|
|
|
Rails.logger.info "Deleted #{deleted_events_count} old Ahoy events"
|
|
|
|
end
|
|
|
|
|
|
|
|
def cleanup_old_visits
|
|
|
|
cutoff_date = 3.months.ago
|
|
|
|
deleted_visits_count = Ahoy::Visit.where("started_at < ?", cutoff_date).delete_all
|
|
|
|
Rails.logger.info "Deleted #{deleted_visits_count} old Ahoy visits"
|
|
|
|
end
|
|
|
|
|
|
|
|
def log_cleanup_results
|
|
|
|
Rails.logger.info "Ahoy cleanup completed at #{Time.current}"
|
|
|
|
Rails.logger.info "Remaining events: #{Ahoy::Event.count}"
|
|
|
|
Rails.logger.info "Remaining visits: #{Ahoy::Visit.count}"
|
|
|
|
end
|
2025-01-28 01:24:49 +08:00
|
|
|
end
|