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