Skip to content

Queue.createJob

Grant Carthew edited this page Jul 28, 2016 · 27 revisions

Description

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 adding your custom job data you will be required to call Queue.addJob to add the job to the queue. For example:

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 a valid job object with updated properties
}).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 })

q.addJob(job).then((savedJobs) => {
  // savedJobs is a valid job object with updated properties
}).catch((err) => {
  console.error(err)
})

Main

How It Works

Contributing

API

Queue Methods

Queue Properties

Queue Events

Job Methods

Job Properties

Documentation

Clone this wiki locally