Module: Marj::ClassMethods

Defined in:
lib/marj.rb

Overview

Provides the #query and #discard class methods.

Instance Method Summary collapse

Instance Method Details

#discard(job) ⇒ ActiveJob::Base

Discards the specified job.

Returns:

  • (ActiveJob::Base)

    the discarded job



63
64
65
# File 'lib/marj.rb', line 63

def discard(job)
  queue_adapter.discard(job)
end

#query(*args, **kwargs) ⇒ Object

Queries enqueued jobs.

Similar to ActiveRecord.where with a few additional features.

Example usage:

query(:all)             # Delegates to Marj::Record.all
query(:due)             # Delegates to Marj::Record.due
query(:all, limit: 10)  # Returns a maximum of 10 jobs
query(job_class: Foo)   # Returns all jobs with job_class Foo

query('123')            # Returns the job with id '123' or nil if no such job exists
query(id: '123')        # Same as above
query(job_id: '123')    # Same as above

query(queue: 'foo')     # Returns all jobs in the 'foo' queue
query(job_queue: 'foo') # Same as above


55
56
57
58
# File 'lib/marj.rb', line 55

def query(*args, **kwargs)
  kwargs[:job_class] ||= self if self < ActiveJob::Base && name != 'ApplicationJob'
  queue_adapter.query(*args, **kwargs)
end