Module: Marty::DelayedJob::QueueAdapter

Defined in:
lib/marty/delayed_job/queue_adapter.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(klass) ⇒ Object



11
12
13
14
15
# File 'lib/marty/delayed_job/queue_adapter.rb', line 11

def self.extended(klass)
  meta = class << klass; self; end
  meta.send(:alias_method, :enqueue, :enqueue_with_cron)
  meta.send(:alias_method, :enqueue_at, :enqueue_at_with_cron)
end

.included(klass) ⇒ Object



6
7
8
9
# File 'lib/marty/delayed_job/queue_adapter.rb', line 6

def self.included(klass)
  klass.send(:alias_method, :enqueue, :enqueue_with_cron)
  klass.send(:alias_method, :enqueue_at, :enqueue_at_with_cron)
end

Instance Method Details

#enqueue_at_with_cron(job, timestamp) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/marty/delayed_job/queue_adapter.rb', line 21

def enqueue_at_with_cron(job, timestamp)
  options = {
    queue: job.queue_name,
    cron: job.cron,
    schedule_id: job.schedule_id
  }

  options[:run_at] = Time.at(timestamp) if timestamp
  options[:priority] = job.priority if job.respond_to?(:priority)
  wrapper = ::ActiveJob::QueueAdapters::DelayedJobAdapter::JobWrapper.new(job.serialize)
  delayed_job = Delayed::Job.enqueue(wrapper, options)
  job.provider_job_id = delayed_job.id if job.respond_to?(:provider_job_id=)

  delayed_job
end

#enqueue_with_cron(job) ⇒ Object



17
18
19
# File 'lib/marty/delayed_job/queue_adapter.rb', line 17

def enqueue_with_cron(job)
  enqueue_at(job, nil)
end