diff --git a/lib/worker.js b/lib/worker.js index 67731692..24064522 100644 --- a/lib/worker.js +++ b/lib/worker.js @@ -375,6 +375,8 @@ worker.prototype.track = function(callback){ worker.prototype.untrack = function(name, queues, callback){ var self = this; + var jobs = []; + if(self.connection && self.connection.redis){ self.connection.redis.srem(self.connection.key('workers'), (name + ':' + queues), function(error){ if(error){ @@ -383,12 +385,16 @@ worker.prototype.untrack = function(name, queues, callback){ return; } - self.connection.redis.del([ + [ self.connection.key('worker', name, self.stringQueues()), self.connection.key('worker', name, self.stringQueues(), 'started'), self.connection.key('stat', 'failed', name), self.connection.key('stat', 'processed', name) - ], function(error){ + ].forEach(function(key){ + jobs.push(function(done){ self.connection.redis.del(key, done); }); + }); + + async.series(jobs, function(error){ if(error){ self.emit('error', null, null, error); } if(typeof callback === 'function'){ callback(error); } });