don't throw on worker failures
This commit is contained in:
@@ -67,8 +67,9 @@ export default class Job extends events.EventEmitter {
|
|||||||
return updatedJob;
|
return updatedJob;
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
if (err.statusCode === 409) return false;
|
this.debug(`_claimJob failed on job ${job._id}`, err);
|
||||||
throw err;
|
this.emit('claim_error', err);
|
||||||
|
return false;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,9 +93,12 @@ export default class Job extends events.EventEmitter {
|
|||||||
version: job._version,
|
version: job._version,
|
||||||
body: { doc }
|
body: { doc }
|
||||||
})
|
})
|
||||||
|
.then(() => true)
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
|
this.debug(`_failJob failed on job ${job._id}`, err);
|
||||||
|
this.emit('fail_error', err);
|
||||||
if (err.statusCode === 409) return true;
|
if (err.statusCode === 409) return true;
|
||||||
throw err;
|
return false;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -185,6 +189,7 @@ export default class Job extends events.EventEmitter {
|
|||||||
this._stopJobPolling();
|
this._stopJobPolling();
|
||||||
let claimed = false;
|
let claimed = false;
|
||||||
|
|
||||||
|
// claim a single job, stopping after first successful claim
|
||||||
return jobs.reduce((chain, job) => {
|
return jobs.reduce((chain, job) => {
|
||||||
return chain.then((claimedJob) => {
|
return chain.then((claimedJob) => {
|
||||||
// short-circuit the promise chain if a job has been claimed
|
// short-circuit the promise chain if a job has been claimed
|
||||||
@@ -199,16 +204,6 @@ export default class Job extends events.EventEmitter {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
}, Promise.resolve())
|
}, Promise.resolve())
|
||||||
.catch((err) => {
|
|
||||||
this.debug('Failed to claim outstanding jobs', err);
|
|
||||||
this.emit('error', err);
|
|
||||||
this.queue.emit('worker_error', {
|
|
||||||
id: this.id,
|
|
||||||
type: this.type,
|
|
||||||
err
|
|
||||||
});
|
|
||||||
throw err;
|
|
||||||
})
|
|
||||||
.then((claimedJob) => {
|
.then((claimedJob) => {
|
||||||
if (!claimedJob) {
|
if (!claimedJob) {
|
||||||
this.debug(`All ${jobs.length} jobs already claimed`);
|
this.debug(`All ${jobs.length} jobs already claimed`);
|
||||||
|
|||||||
Reference in New Issue
Block a user