module ActiveJob
def self.deprecator # :nodoc:
def self.deprecator # :nodoc: @deprecator ||= ActiveSupport::Deprecation.new end
def self.gem_version
def self.gem_version Gem::Version.new VERSION::STRING end
def self.version
def self.version gem_version end
def adapter_name(adapter) # :nodoc:
def adapter_name(adapter) # :nodoc: return adapter.queue_adapter_name if adapter.respond_to?(:queue_adapter_name) adapter_class = adapter.is_a?(Module) ? adapter : adapter.class "#{adapter_class.name.demodulize.delete_suffix('Adapter')}" end
def instrument_enqueue_all(queue_adapter, jobs)
def instrument_enqueue_all(queue_adapter, jobs) payload = { adapter: queue_adapter, jobs: jobs } ActiveSupport::Notifications.instrument("enqueue_all.active_job", payload) do result = yield payload payload[:enqueued_count] = result result end end
def perform_all_later(*jobs)
Queue adapters may communicate the enqueue status of each job by setting
Push many jobs onto the queue at once without running enqueue callbacks.
def perform_all_later(*jobs) jobs.flatten! jobs.group_by(&:queue_adapter).each do |queue_adapter, adapter_jobs| instrument_enqueue_all(queue_adapter, adapter_jobs) do if queue_adapter.respond_to?(:enqueue_all) queue_adapter.enqueue_all(adapter_jobs) else adapter_jobs.each do |job| job.successfully_enqueued = false if job.scheduled_at queue_adapter.enqueue_at(job, job.scheduled_at.to_f) else queue_adapter.enqueue(job) end job.successfully_enqueued = true rescue EnqueueError => e job.enqueue_error = e end adapter_jobs.count(&:successfully_enqueued?) end end end nil end