lib/good_job.rb in good_job-4.7.0 vs lib/good_job.rb in good_job-4.8.0

- old
+ new

@@ -290,8 +290,40 @@ # For use in tests/CI to validate GoodJob is up-to-date. # @return [Boolean] def self.migrated? GoodJob::BatchRecord.jobs_finished_at_migrated? end + + # Pause job execution for a given queue or job class. + # @param queue [String, nil] Queue name to pause + # @param job_class [String, nil] Job class name to pause + # @return [void] + def self.pause(queue: nil, job_class: nil) + GoodJob::Setting.pause(queue: queue, job_class: job_class) + end + + # Unpause job execution for a given queue or job class. + # @param queue [String, nil] Queue name to unpause + # @param job_class [String, nil] Job class name to unpause + # @param label [String, nil] Label to unpause + # @return [void] + def self.unpause(queue: nil, job_class: nil, label: nil) + GoodJob::Setting.unpause(queue: queue, job_class: job_class, label: label) + end + + # Check if job execution is paused for a given queue or job class. + # @param queue [String, nil] Queue name to check + # @param job_class [String, nil] Job class name to check + # @param label [String, nil] Label to check + # @return [Boolean] + def self.paused?(queue: nil, job_class: nil, label: nil) + GoodJob::Setting.paused?(queue: queue, job_class: job_class, label: label) + end + + # Get a list of all paused queues and job classes + # @return [Hash] Hash with :queues, :job_classes, :labels arrays of paused items + def self.paused(type = nil) + GoodJob::Setting.paused(type) + end end ActiveSupport.run_load_hooks(:good_job, GoodJob)