-
Notifications
You must be signed in to change notification settings - Fork 16
Queue.createJob
Returns: Object
- A single JavaScript Job object.
Example:
let job = q.createJob()
Parameter: Job data AND/OR Job Options Object or Value
- A JavaScript object to populate the job data, customize the options for the job, or both.
Returns: Object
- A single JavaScript Job object.
Example:
const optAndData = {
priority: 'high',
data: 'Job Processing Information'
}
let job = q.createJob(optAndData)
To add jobs to the queue you need to have the basic object structure required for rethinkdb-job-queue
to be able to work with the data.
You use the Queue.createJob()
method to produce a job object that looks like the following:
{
q: [object Object], // This is a reference to the Queue that created the job
id: '07290a09-269b-4211-9698-ea40f69962b2', // This will be the jobs id in the database
priority: 'normal',
timeout: 300000,
retryDelay: 600000,
retryMax: 3,
retryCount: 0,
progress: 0,
status: 'created',
log: [],
dateCreated: 2016-07-27T22:54:45.811Z,
dateEnable: 2016-07-27T22:54:45.811Z,
queueId: 'WebDev:rjqJobQueue:rjqJobList:11761:89c2d49e-5a04-4d9b-b08e-48908625ea64'
}
You will notice there are no properties to hold your job data. You can decorate the job object with any properties you like by passing in a data value or object, or adding properties.
After populating the job object with your job details you will be required to call Queue.addJob to add the job to the queue. Until you call Queue.addJob the job does not exist in the database and will not be queued for processing.
Note: The examples below do not include Queue.process so the jobs will be committed to the database successfully however they will never be processed.
Here is an example of creating a single job and adding it to the Queue using custom job properties:
const Queue = require('rethinkdb-job-queue')
const q = new Queue()
// job.recipient will be set to 'flash@fast.net'
const job = q.createJob({ recipient: 'flash@fast.net' })
// You can also add properties directly.
job.subject = 'Registration for superheros.com'
job.body = 'Click this link to activate your account on superheros.com'
q.addJob(job).then((savedJobs) => {
// savedJobs is an array of one item which is a valid job object
console.log(savedJobs[0].recipient) // Logs 'flash@fast.net'
console.log(savedJobs[0].subject) // Logs 'Registration for superheros.com'
}).catch(err => console.error(err))
This example will add data to the job and customize it with different options than the default. See the Queue.jobOptions property for how to set default options.
const Queue = require('rethinkdb-job-queue')
const q = new Queue()
const optAndData = {
priority: 'highest',
path = '\mnt\Videos\xyz.vid'
}
const job = q.createJob(optAndData)
q.addJob(job).then((savedJobs) => {
// savedJobs is an array of valid job objects
console.dir(savedJobs[0].path) // Logs '\mnt\Videos\xyz.vid'
}).catch(err => console.error(err))
Here is an example of creating a job by using a string. If you pass a value type to the Queue.createJob
method, the value will be set against the Job.data
property. By default the Job.data
property does not exist. It is only created if you pass a value type to the Queue.createJob
method.
const Queue = require('rethinkdb-job-queue')
const q = new Queue()
// job.data will be set to 'flash@fast.net'
const job = q.createJob('flash@fast.net')
q.addJob(job).then((savedJobs) => {
// savedJobs is an array of one item which is a valid job object
console.log(savedJobs[0].data) // Logs 'flash@fast.net'
}).catch(err => console.error(err))
- 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