-
Notifications
You must be signed in to change notification settings - Fork 16
Queue.createJob
Returns: Object Single JavaScript Job object.
Example:
let job = q.createJob()Parameter: Job Options - A JavaScript object to customize the options for the job.
Returns: Object Single JavaScript Job object.
Example:
const options = {
priority: 'high'
}
let job = q.createJob(options)Parameter: Number - An integer used to create a batch of Job objects.
A valid Number will be an integer > 0. There is no upper limit.
Returns: [Object] Array of JavaScript Job objects.
Example:
let jobs = q.createJob(100)Parameter: Job Options - A JavaScript object to customize the options for the job.
Parameter: Number - An integer used to create a batch of Job objects.
A valid Number will be an integer > 0. There is no upper limit.
Returns: [Object] Array of JavaScript Job objects.
Example:
const options = {
priority: 'high'
}
let jobs = q.createJob(options, 100)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: 300,
retryDelay: 600,
retryMax: 3,
retryCount: 0,
progress: 0,
status: 'created',
log: [],
dateCreated: 2016-07-27T22:54:45.811Z,
dateRetry: 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. There is a Job.setPayload method you can call to add a Job.payload property, however there is no difference to calling that method or simply doing Job.payload = <some data>.
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.
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()
const job = q.createJob()
job.recipient = '[email protected]'
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 objects with updated properties
console.log(savedJobs[0].recipient) // Logs '[email protected]'
}).catch((err) => {
console.error(err)
})Here is another example using the Job.setPayload method. This will create a Job.payload property containing the custom job data:
const Queue = require('rethinkdb-job-queue')
const q = new Queue()
const job = q.createJob().setPayload({ // some custom object or data })
q.addJob(job).then((savedJobs) => {
// savedJobs is an array of valid job objects with updated properties
console.dir(savedJobs[0].payload) // Logs { // some custom object or data }
}).catch((err) => {
console.error(err)
})Here we are using the Integer parameter to create multiple jobs:
const Queue = require('rethinkdb-job-queue')
const q = new Queue()
const jobs = q.createJob(100)
for (let j of jobs) {
j.data = 'information' // Any job data or payload
}
q.addJob(jobs).then((savedJobs) => {
// savedJobs is an array of valid job objects with updated properties
console.dir(savedJobs[0].data) // { // some custom object or data }
}).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