class Que::Scheduler::Jobs::QueSchedulerAuditClearDownJob
Constants
- DELETE_AUDIT_ENQUEUED_SQL
- DELETE_AUDIT_SQL
Public Class Methods
build_sql(table_name)
click to toggle source
# File lib/que/scheduler/jobs/que_scheduler_audit_clear_down_job.rb, line 10 def build_sql(table_name) <<~SQL WITH deleted AS ( DELETE FROM #{table_name} WHERE scheduler_job_id <= ( SELECT scheduler_job_id FROM que_scheduler_audit ORDER BY scheduler_job_id DESC LIMIT 1 OFFSET $1 ) RETURNING * ) SELECT count(*) FROM deleted; SQL end
Public Instance Methods
run(options)
click to toggle source
# File lib/que/scheduler/jobs/que_scheduler_audit_clear_down_job.rb, line 30 def run(options) retain_row_count = options.symbolize_keys.fetch(:retain_row_count) Que::Scheduler::Db.transaction do # This may delete zero or more than `retain_row_count` depending on if anything was # scheduled in each of the past schedule runs Que::Scheduler::VersionSupport.execute(DELETE_AUDIT_ENQUEUED_SQL, [retain_row_count]) # This will delete all but `retain_row_count` oldest rows count = Que::Scheduler::VersionSupport.execute(DELETE_AUDIT_SQL, [retain_row_count]) log = "#{self.class} cleared down #{count.first.fetch(:count)} rows" ::Que.log(event: "que-scheduler".to_sym, message: log) end end