lib/good_job.rb in good_job-1.1.3 vs lib/good_job.rb in good_job-1.1.4

- old
+ new

@@ -9,16 +9,38 @@ require 'good_job/multi_scheduler' require 'good_job/adapter' require 'good_job/pg_locks' require 'good_job/performer' require 'good_job/current_execution' +require 'good_job/notifier' require 'active_job/queue_adapters/good_job_adapter' module GoodJob - cattr_accessor :logger, default: ActiveSupport::TaggedLogging.new(ActiveSupport::Logger.new(STDOUT)) + mattr_accessor :logger, default: ActiveSupport::TaggedLogging.new(ActiveSupport::Logger.new(STDOUT)) mattr_accessor :preserve_job_records, default: false mattr_accessor :reperform_jobs_on_standard_error, default: true mattr_accessor :on_thread_error, default: nil ActiveSupport.run_load_hooks(:good_job, self) + + # Shuts down all execution pools + # @param wait [Boolean] whether to wait for shutdown + # @return [void] + def self.shutdown(wait: true) + Notifier.instances.each { |adapter| adapter.shutdown(wait: wait) } + Scheduler.instances.each { |scheduler| scheduler.shutdown(wait: wait) } + end + + # Tests if execution pools are shut down + # @return [Boolean] whether execution pools are shut down + def self.shutdown? + Notifier.instances.all?(&:shutdown?) && Scheduler.instances.all?(&:shutdown?) + end + + # Restarts all execution pools + # @return [void] + def self.restart + Notifier.instances.each(&:restart) + Scheduler.instances.each(&:restart) + end end