diff --git a/lib/agenda.js b/lib/agenda.js index 0f605f832..162ced564 100644 --- a/lib/agenda.js +++ b/lib/agenda.js @@ -675,11 +675,13 @@ function processJobs(extraJob) { if (err && !job) throw(err) var name = job.attrs.name; + if (self._runningJobs.indexOf(job) == -1) throw("callback already called - job " + name + " already marked complete"); + self._runningJobs.splice(self._runningJobs.indexOf(job), 1); - definitions[name].running--; + if (definitions[name].running > 0) definitions[name].running--; self._lockedJobs.splice(self._lockedJobs.indexOf(job), 1); - definitions[name].locked--; + if (definitions[name].locked > 0) definitions[name].locked--; jobProcessing(); }