Comparing version 0.11.1 to 1.0.0
@@ -6,2 +6,4 @@ 'use strict'; | ||
var assign = require('101/assign'); | ||
var clone = require('101/clone'); | ||
var debug = require('debug')('ponos:server'); | ||
var defaults = require('101/defaults'); | ||
@@ -16,3 +18,2 @@ var ErrorCat = require('error-cat'); | ||
var Promise = require('bluebird'); | ||
var clone = require('101/clone'); | ||
var Worker = require('./worker'); | ||
@@ -89,2 +90,3 @@ | ||
Server.prototype._assertHaveAllTasks = function () { | ||
debug('_assertHaveAllTasks'); | ||
return Promise.resolve(this.hermes.getQueues()).bind(this) | ||
@@ -105,4 +107,5 @@ .each(function (queueName) { | ||
Server.prototype._subscribe = function (queueName) { | ||
debug('_subscribe(' + queueName + ')'); | ||
this.log.trace('ponos.Server: subscribing to ' + queueName); | ||
return this.hermes.subscribeAsync(queueName, function (job, done) { | ||
return this.hermes.subscribe(queueName, function (job, done) { | ||
this._runWorker(queueName, job, done); | ||
@@ -117,2 +120,3 @@ }.bind(this)); | ||
Server.prototype._subscribeAll = function () { | ||
debug('_subscribeAll'); | ||
return Promise.resolve(this.hermes.getQueues()).bind(this) | ||
@@ -129,2 +133,3 @@ .map(this._subscribe); | ||
Server.prototype._runWorker = function (queueName, job, done) { | ||
debug('_runWorker(' + [ queueName, job ].join(', ') + ')'); | ||
var opts = clone(this._workerOptions[queueName]); | ||
@@ -147,2 +152,3 @@ defaults(opts, { | ||
Server.prototype.start = function () { | ||
debug('start'); | ||
this.log.trace('ponos.Server: starting'); | ||
@@ -166,2 +172,3 @@ return this.hermes.connectAsync().bind(this) | ||
Server.prototype.stop = function () { | ||
debug('stop'); | ||
this.log.trace('ponos.Server: stopping'); | ||
@@ -184,19 +191,20 @@ return this.hermes.closeAsync().bind(this) | ||
* and additional options for the worker. | ||
* @returns {promise} Resolved when all tasks are assigned to queues. | ||
* @returns {ponos.Server} The server. | ||
*/ | ||
Server.prototype.setAllTasks = function (map) { | ||
return Promise.resolve(Object.keys(map)).bind(this) | ||
.each(function (key) { | ||
var value = map[key]; | ||
if (isObject(value)) { | ||
if (!isFunction(value.task)) { | ||
throw new Error( | ||
'ponos.Server.setAllTasks: No task function defined for ' + key | ||
); | ||
} | ||
return this.setTask(key, value.task, value); | ||
} else { | ||
return this.setTask(key, map[key]); | ||
debug('setAllTasks'); | ||
Object.keys(map).forEach(function (key) { | ||
var value = map[key]; | ||
if (isObject(value)) { | ||
if (!isFunction(value.task)) { | ||
throw new Error( | ||
'ponos.Server.setAllTasks: No task function defined for ' + key | ||
); | ||
} | ||
}); | ||
this.setTask(key, value.task, value); | ||
} else { | ||
this.setTask(key, map[key]); | ||
} | ||
}.bind(this)); | ||
return this; | ||
}; | ||
@@ -209,17 +217,16 @@ | ||
* @param {object} opts Options for the worker that performs the task. | ||
* @returns {promise} Resolved when task assigned to queue. | ||
* @returns {ponos.Server} The server. | ||
*/ | ||
Server.prototype.setTask = function (queueName, task, opts) { | ||
debug('setTask(' + [ queueName, task ].join(', ') + ')'); | ||
this.log.trace('ponos.Server: setting task for ' + queueName); | ||
return Promise.resolve().bind(this) | ||
.then(function () { | ||
if (!isFunction(task)) { | ||
throw new Error( | ||
'ponos.Server.setTask: Provided task handler is not a function' | ||
); | ||
} | ||
this._tasks[queueName] = task; | ||
this._workerOptions[queueName] = isObject(opts) ? | ||
pick(opts, 'msTimeout') : {}; | ||
}); | ||
if (!isFunction(task)) { | ||
throw new Error( | ||
'ponos.Server.setTask: Provided task handler is not a function' | ||
); | ||
} | ||
this._tasks[queueName] = task; | ||
this._workerOptions[queueName] = isObject(opts) ? | ||
pick(opts, 'msTimeout') : {}; | ||
return this; | ||
}; |
{ | ||
"name": "ponos", | ||
"version": "0.11.1", | ||
"version": "1.0.0", | ||
"description": "An opinionated queue based worker server for node.", | ||
@@ -37,2 +37,3 @@ "main": "index.js", | ||
"bunyan": "^1.5.1", | ||
"debug": "^2.2.0", | ||
"error-cat": "^1.3.4", | ||
@@ -39,0 +40,0 @@ "loadenv": "^1.1.0", |
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
24642
472
0
7
+ Addeddebug@^2.2.0