minionpool
Advanced tools
+18
-8
@@ -85,5 +85,13 @@ /** | ||
| callback(undefined, state); | ||
| queue.subscribe({ack: true, prefetchCount: 5}, function(msg) { | ||
| injectTask({queue: queue, task: msg.data.toString('utf-8')}); | ||
| }); | ||
| queue.subscribe( | ||
| {ack: true, prefetchCount: 5}, | ||
| function(payload, headers, deliveryInfo, message) { | ||
| injectTask({ | ||
| payload: payload, | ||
| headers: headers, | ||
| deliveryInfo: deliveryInfo, | ||
| message: message | ||
| }); | ||
| } | ||
| ); | ||
| }); | ||
@@ -101,7 +109,9 @@ }); | ||
| minionTaskHandler: function(data, state, callback) { | ||
| var queue = data.queue; | ||
| var task = data.queue; | ||
| logger.debug('got task: %s', task); | ||
| queue.shift(false); | ||
| minionTaskHandler: function(msg, state, callback) { | ||
| var payload = msg.payload; | ||
| var headers = msg.headers; | ||
| var deliveryInfo = msg.deliveryInfo; | ||
| var message = msg.message; | ||
| logger.debug('got task: %s', payload); | ||
| message.acknowledge(); | ||
| callback(undefined, state); | ||
@@ -108,0 +118,0 @@ }, |
+1
-1
@@ -5,3 +5,3 @@ { | ||
| "description": "A simple task-consumer pool for nodejs", | ||
| "version": "0.0.9", | ||
| "version": "0.0.10", | ||
| "homepage": "https://github.com/marcelog/minionpool", | ||
@@ -8,0 +8,0 @@ "keywords": [ |
+5
-0
@@ -136,3 +136,8 @@ # About | ||
| ## Using multiple cores | ||
| In the case of having rabbitmq and mysql workers, it's very useful to take advantage | ||
| of multicore cpu's. For this, you can use [taskset](http://linuxcommand.org/man_pages/taskset1.html) | ||
| and launch multiple minionpool instances on different cores. | ||
| ## Into the details: Lifecycle (Polling) | ||
@@ -139,0 +144,0 @@ |
+6
-2
@@ -26,2 +26,3 @@ /** | ||
| Base.super_.call(this); | ||
| this.endCalled = false; | ||
| for(k in options) { | ||
@@ -72,6 +73,9 @@ this[k] = options[k]; | ||
| this.endFunction(this.state, function() { | ||
| self.emit('ended'); | ||
| self.debugMsg('Ended'); | ||
| if(!self.endCalled) { | ||
| self.endCalled = true; | ||
| self.emit('ended'); | ||
| self.debugMsg('Ended'); | ||
| } | ||
| }); | ||
| }; | ||
| exports.Base = Base; |
38626
1.68%693
2.06%178
2.89%