UNPKG

node-resque

Version:

an opinionated implementation of resque in node

54 lines (45 loc) 1.36 kB
// If the job fails, sleep, and re-enqueue it. // You probably never want to use this in production var simpleRetry = function(worker, func, queue, job, args, options){ var self = this; self.name = 'simpleRetry'; self.worker = worker; self.queue = queue; self.func = func; self.job = job; self.args = args; self.options = options; self.sleep = 1000; if(self.options.sleep){ self.sleep = self.options.sleep; } }; //////////////////// // PLUGIN METHODS // //////////////////// simpleRetry.prototype.before_enqueue = function(callback){ // console.log("** before_enqueue") callback(null, true); }; simpleRetry.prototype.after_enqueue = function(callback){ // console.log("** after_enqueue") callback(null, true); }; simpleRetry.prototype.before_perform = function(callback){ // console.log("** before_perform") callback(null, true); }; simpleRetry.prototype.after_perform = function(callback){ // console.log("** after_perform") var self = this; if(self.worker.error){ if(self.options.errorCollector){ self.options.errorCollector.push( self.worker.error ); } self.worker.error = null; self.worker.queueObject.enqueueIn(self.sleep, self.queue, self.func, self.args, function(err){ callback(err, true); }); }else{ callback(null, true); } }; exports.simpleRetry = simpleRetry;