Module: Marj::ClassMethods
- Defined in:
- lib/marj.rb
Overview
Instance Method Summary collapse
-
#delete(job) ⇒ ActiveJob::Base
Deletes the record associated with the specified job.
-
#discard(job) ⇒ ActiveJob::Base
Discards the specified job.
-
#query(*args, **kwargs) ⇒ Object
Queries enqueued jobs.
Instance Method Details
#delete(job) ⇒ ActiveJob::Base
Deletes the record associated with the specified job.
76 77 78 |
# File 'lib/marj.rb', line 76 def delete(job) queue_adapter.delete(job) end |
#discard(job) ⇒ ActiveJob::Base
Discards the specified job.
69 70 71 |
# File 'lib/marj.rb', line 69 def discard(job) queue_adapter.discard(job) end |
#query(*args, **kwargs) ⇒ Object
Queries enqueued jobs. Similar to ActiveRecord.where
with a few additional features:
-
Symbol arguments are treated as
ActiveRecord
scopes. -
If only a job ID is specified, the corresponding job is returned.
-
If
:limit
is specified, the maximum number of jobs is limited. -
If
:order
is specified, the jobs are ordered by the given attribute.
By default jobs are ordered by when they should be executed.
Example usage:
query # Returns all jobs
query(:all) # Returns all jobs
query(:due) # Returns jobs which are due to be executed
query(:due, limit: 10) # Returns at most 10 jobs which are due to be executed
query(job_class: Foo) # Returns all jobs with job_class Foo
query(:due, job_class: Foo) # Returns jobs which are due to be executed with job_class Foo
query(queue_name: 'foo') # Returns all jobs in the 'foo' queue
query(job_id: '123') # Returns the job with job_id '123' or nil if no such job exists
query('123') # Returns the job with job_id '123' or nil if no such job exists
61 62 63 64 |
# File 'lib/marj.rb', line 61 def query(*args, **kwargs) kwargs[:job_class] ||= self if self < ActiveJob::Base && name != 'ApplicationJob' queue_adapter.query(*args, **kwargs) end |