Class: Que::Scheduler::ToEnqueue

Inherits:
Hashie::Dash
  • Object
show all
Defined in:
lib/que/scheduler/to_enqueue.rb

Direct Known Subclasses

ActiveJobType, QueJobType

Class Method Summary collapse

Class Method Details

.active_job_defined?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/que/scheduler/to_enqueue.rb', line 25

def active_job_defined?
  Object.const_defined?(:ActiveJob)
end

.active_job_versionObject



29
30
31
# File 'lib/que/scheduler/to_enqueue.rb', line 29

def active_job_version
  Gem.loaded_specs["activejob"]&.version
end

.active_job_version_supports_queues?Boolean

Returns:

  • (Boolean)


33
34
35
36
37
38
39
40
# File 'lib/que/scheduler/to_enqueue.rb', line 33

def active_job_version_supports_queues?
  # Supporting queue name in ActiveJob was removed in Rails 4.2.3
  # https://github.com/rails/rails/pull/19498
  # and readded in Rails 6.0.3
  # https://github.com/rails/rails/pull/38635
  ToEnqueue.active_job_version && ToEnqueue.active_job_version >=
    Gem::Version.create("6.0.3")
end

.create(options) ⇒ Object



15
16
17
18
19
# File 'lib/que/scheduler/to_enqueue.rb', line 15

def create(options)
  type_from_job_class(options.fetch(:job_class)).new(
    options.merge(run_at: Que::Scheduler::Db.now)
  )
end

.valid_job_class?(job_class) ⇒ Boolean

Returns:

  • (Boolean)


21
22
23
# File 'lib/que/scheduler/to_enqueue.rb', line 21

def valid_job_class?(job_class)
  type_from_job_class(job_class).present?
end