Class: MarjAdapter

Inherits:
Object
  • Object
show all
Defined in:
lib/marj_adapter.rb

Overview

ActiveJob queue adapter for Marj.

See github.com/nicholasdower/marj

Instance Method Summary collapse

Constructor Details

#initialize(record_class = 'Marj::Record') ⇒ MarjAdapter

Creates a new adapter which will enqueue jobs using the given ActiveRecord class.

Parameters:

  • record_class (Class, String) (defaults to: 'Marj::Record')

    the ActiveRecord class (or its name) to use to store jobs



10
11
12
# File 'lib/marj_adapter.rb', line 10

def initialize(record_class = 'Marj::Record')
  @record_class = record_class
end

Instance Method Details

#enqueue(job) ⇒ ActiveJob::Base

Enqueue a job for immediate execution.

Parameters:

  • job (ActiveJob::Base)

    the job to enqueue

Returns:

  • (ActiveJob::Base)

    the enqueued job



18
19
20
# File 'lib/marj_adapter.rb', line 18

def enqueue(job)
  Marj.send(:enqueue, job, record_class)
end

#enqueue_at(job, timestamp) ⇒ ActiveJob::Base

Enqueue a job for execution at the specified time.

Parameters:

  • job (ActiveJob::Base)

    the job to enqueue

  • timestamp (Numeric, NilClass)

    optional number of seconds since Unix epoch at which to execute the job

Returns:

  • (ActiveJob::Base)

    the enqueued job



27
28
29
# File 'lib/marj_adapter.rb', line 27

def enqueue_at(job, timestamp)
  Marj.send(:enqueue, job, record_class, timestamp ? Time.at(timestamp).utc : nil)
end