songtianlun
2e438166ee
- Add manual task execution buttons for BatchGenerateWeatherArtsWorker, RefreshSitemapWorker, and CleanAhoyDataWorker - Improve browser blocking functionality in ApplicationController - Refactor Sidekiq jobs management to include statistics and task execution - Update various jobs to conform to new standards This feature allows for more fine-grained control over Sidekiq tasks and improves the overall user experience.
31 lines
863 B
Ruby
31 lines
863 B
Ruby
# app/jobs/clean_ahoy_data_job.rb
|
|
class CleanAhoyDataJob < ApplicationJob
|
|
queue_as :default
|
|
|
|
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
|
|
end
|