-
Notifications
You must be signed in to change notification settings - Fork 16
Queue.findJob
Parameter: predicate
Object or Function
-
predicate
can be a simple object or a complex function. - If a function is passed you are restricted to using RethinkDBs ReQL expressions.
Parameter: raw
Boolean
- True to return raw database data rather than a Job object
Returns: Promise
=> Array
- An
Array
of Job objects or an emptyArray
. - If you set
raw
, anArray
of generic JavaScript objects.
Example:
q.findJob({ email: 'batman@batcave.org' }).then((jobs) => {
// jobs will either be an empty array
// or an array of Job objects that have an
// email property equal to 'batman@batcave.org'
}).catch(err => console.error(err))
One of the most flexible methods on the Queue objects is the Queue.findJob
. This method exposes the full and rich filter functionality of the RethinkDB ReQL (RethinkDB Query Language).
Using the Queue.findJob
method you can extract information about the jobs in the queue. Here is a quick list of information you could obtain using Queue.findJob
.
- Confirm a job has not already been added to the queue (ensure unique job).
- Get all jobs related to a common task.
- Get all
failed
orterminated
jobs. - Produce reports on any job data.
This example shows how to find jobs with a subject
property set to finance
.
const Queue = require('rethinkdb-job-queue')
const q = new Queue()
let job = q.createJob({ subject: 'finance' })
// findJob will return any job that has job.subject === 'finance'
q.findJob({ subject: 'finance' }).then((financeJobs) => {
// Do something with the finance jobs here.
}).catch(err => console.error(err))
This example shows how to use a function as the predicate. The function will return all jobs that completed between January 1st, 2012 (included) and January 1st, 2013 (excluded).
const Queue = require('rethinkdb-job-queue')
const q = new Queue()
const predicate = function (job) {
return job('dateCompleted').during(
q.r.time(2012, 1, 1, 'Z'), q.r.time(2013, 1, 1, 'Z'))
}
q.findJob(predicate).then((jobs) => {
// Zero or more jobs in an array.
}).catch(err => console.error(err))
To really understand how powerful this functionality is please read more on the ReQL filter page.
- Introduction
- Tutorial
- Queue Constructor
- Queue Connection
- Queue Options
- Queue PubSub
- Queue Master
- Queue Events
- State Document
- Job Processing
- Job Options
- Job Status
- Job Retry
- Job Repeat
- Job Logging
- Job Editing
- Job Schema
- Job Name
- Complex Job
- Delayed Job
- Cancel Job
- Error Handling
- Queue.createJob
- Queue.addJob
- Queue.getJob
- Queue.findJob
- Queue.findJobByName
- Queue.containsJobByName
- Queue.cancelJob
- Queue.reanimateJob
- Queue.removeJob
- Queue.process
- Queue.review
- Queue.summary
- Queue.ready
- Queue.pause
- Queue.resume
- Queue.reset
- Queue.stop
- Queue.drop
- Queue.Job
- Queue.host
- Queue.port
- Queue.db
- Queue.name
- Queue.r
- Queue.id
- Queue.jobOptions [R/W]
- Queue.changeFeed
- Queue.master
- Queue.masterInterval
- Queue.removeFinishedJobs
- Queue.running
- Queue.concurrency [R/W]
- Queue.paused
- Queue.idle
- Event.ready
- Event.added
- Event.updated
- Event.active
- Event.processing
- Event.progress
- Event.log
- Event.pausing
- Event.paused
- Event.resumed
- Event.completed
- Event.cancelled
- Event.failed
- Event.terminated
- Event.reanimated
- Event.removed
- Event.idle
- Event.reset
- Event.error
- Event.reviewed
- Event.detached
- Event.stopping
- Event.stopped
- Event.dropped
- Job.setName
- Job.setPriority
- Job.setTimeout
- Job.setDateEnable
- Job.setRetryMax
- Job.setRetryDelay
- Job.setRepeat
- Job.setRepeatDelay
- Job.updateProgress
- Job.update
- Job.getCleanCopy
- Job.addLog
- Job.getLastLog