kue
kue copied to clipboard
Job on complete event
When fetching a job like this -
kue.Job.get(someId, (err, job) => {
job.on('complete', () => { // never called
debug('on get')
// do stuff after job is complete
})
job.inactive()
})
here this event handler is never called, probably because kue.Job.get
doesn't return an object that has that listener. Is there a way to listen to job events when fetching events like this ?
or a way to listen to complete
event for a particular job (by job id)
This works fine, but doesn't serve the purpose -
const job = queue.create('name', {
title
})
.delay(1200000)
.attempts(3)
.save(err => {
if(err)
return
// save job.id
})
job.on('complete', () => {
debug('on create')
})
Did you save()
the job before fetch it from kue server
? Is yes, let log the (error, job)
when you receive response from fetch.
Let try this approach:
let someId
const job = queue.create('name', {title})
.delay(1200000)
.attempts(3)
.save(err => {
if(err)
return
someId = job.id
})
kue.Job.get(someId, (err, job) => {
console.log('error', err)
console.log('job', job)
job.on('complete', () => {
debug('on get')
// do stuff after job is complete
})
job.inactive()
})
hi @CQBinh .. how is your code different ? That is what i have done, but the job.on('complete')
listener is never called.
@eelsweb
First, I guess that you forget to save()
the job after call: queue.create()
.
Btw: let post your full code with log from kue.Job.get()
calling, so I can look deeper.
Does anyone know how to listen for when all jobs in a queue are completed?
@expresstechsoftwares https://github.com/Automattic/kue#queue-events
Anyone solve this?