lib/good_job.rb in good_job-3.15.3 vs lib/good_job.rb in good_job-3.15.4
- old
+ new
@@ -168,18 +168,23 @@
include_discarded = GoodJob.configuration.cleanup_discarded_jobs?
ActiveSupport::Notifications.instrument("cleanup_preserved_jobs.good_job", { older_than: older_than, timestamp: timestamp }) do |payload|
deleted_executions_count = 0
deleted_batches_count = 0
+ deleted_discrete_executions_count = 0
jobs_query = GoodJob::Job.where('finished_at <= ?', timestamp).order(finished_at: :asc).limit(in_batches_of)
jobs_query = jobs_query.succeeded unless include_discarded
loop do
- deleted = GoodJob::Execution.where(job: jobs_query).delete_all
- break if deleted.zero?
+ active_job_ids = jobs_query.pluck(:active_job_id)
+ break if active_job_ids.empty?
- deleted_executions_count += deleted
+ deleted_discrete_executions = GoodJob::DiscreteExecution.where(active_job_id: active_job_ids).delete_all
+ deleted_discrete_executions_count += deleted_discrete_executions
+
+ deleted_executions = GoodJob::Execution.where(active_job_id: active_job_ids).delete_all
+ deleted_executions_count += deleted_executions
end
if GoodJob::BatchRecord.migrated?
batches_query = GoodJob::BatchRecord.where('finished_at <= ?', timestamp).limit(in_batches_of)
batches_query = batches_query.succeeded unless include_discarded
@@ -189,12 +194,17 @@
deleted_batches_count += deleted
end
end
- payload[:destroyed_executions_count] = deleted_executions_count
payload[:destroyed_batches_count] = deleted_batches_count
- payload[:destroyed_records_count] = deleted_executions_count + deleted_batches_count
+ payload[:destroyed_discrete_executions_count] = deleted_discrete_executions_count
+ payload[:destroyed_executions_count] = deleted_executions_count
+
+ destroyed_records_count = deleted_batches_count + deleted_discrete_executions_count + deleted_executions_count
+ payload[:destroyed_records_count] = destroyed_records_count
+
+ destroyed_records_count
end
end
# Perform all queued jobs in the current thread.
# This is primarily intended for usage in a test environment.