module Marj::ClassMethods

def delete(job)

Returns:
  • (ActiveJob::Base) - the deleted job
def delete(job)
  queue_adapter.delete(job)
end

def discard(job)

Returns:
  • (ActiveJob::Base) - the discarded job
def discard(job)
  queue_adapter.discard(job)
end

def query(*args, **kwargs)

query('123') # Returns the job with job_id '123' or nil if no such job exists
query(job_id: '123') # Returns the job with job_id '123' or nil if no such job exists
query(queue_name: 'foo') # Returns all jobs in the 'foo' queue
query(:due, job_class: Foo) # Returns jobs which are due to be executed with job_class Foo
query(job_class: Foo) # Returns all jobs with job_class Foo
query(:due, limit: 10) # Returns at most 10 jobs which are due to be executed
query(:due) # Returns jobs which are due to be executed
query(:all) # Returns all jobs
query # Returns all jobs
Example usage:

By default jobs are ordered by when they should be executed.

- If +:order+ is specified, the jobs are ordered by the given attribute.
- If +:limit+ is specified, the maximum number of jobs is limited.
- If only a job ID is specified, the corresponding job is returned.
- Symbol arguments are treated as +ActiveRecord+ scopes.
Queries enqueued jobs. Similar to +ActiveRecord.where+ with a few additional features:
def query(*args, **kwargs)
  kwargs[:job_class] ||= self if self < ActiveJob::Base && name != 'ApplicationJob'
  queue_adapter.query(*args, **kwargs)
end