Comparing version 1.0.6 to 1.1.0
@@ -5,3 +5,2 @@ 'use strict'; | ||
var _ = require ('lodash'); | ||
var uuid = require ('uuid'); | ||
@@ -48,12 +47,5 @@ var AsyncQueue = require ('../AsyncQueue'); | ||
var self = this; | ||
var pl = { | ||
payload: entry.payload, | ||
tries: entry.tries | ||
}; | ||
self._verbose ('insert: %j', entry); | ||
var id = entry.id || uuid.v4(); | ||
var mature = entry.mature || Queue.now (); | ||
self._verbose ('insert: id is %s, mature is %s', id, mature); | ||
this._roq.push (id, mature.getTime (), JSON.stringify (pl), function (err, res) { | ||
this._roq.push (entry, function (err, res) { | ||
if (err) { | ||
@@ -63,3 +55,3 @@ return callback (err); | ||
self._verbose ('insert: inserted payload %j', pl, {}); | ||
self._verbose ('insert: inserted payload %j', res, {}); | ||
callback (null, res); | ||
@@ -80,3 +72,2 @@ }); | ||
// res is [id, mature, text] | ||
self._verbose ('get: obtained %j', res, {}); | ||
@@ -88,10 +79,4 @@ | ||
else { | ||
var pl = JSON.parse (res[2]); | ||
// TODO check res has #2, and parses as json | ||
pl.mature = new Date (parseInt (res[1])); | ||
pl._id = res[0]; | ||
self._verbose ('get: final pl to return is %j', pl, {}); | ||
callback (null, pl); | ||
self._verbose ('get: final pl to return is %j', res, {}); | ||
callback (null, res); | ||
} | ||
@@ -114,3 +99,2 @@ }); | ||
// res is [id, mature, text] | ||
self._verbose ('reserve: obtained %j', res, {}); | ||
@@ -122,10 +106,4 @@ | ||
else { | ||
var pl = JSON.parse (res[2]); | ||
// TODO check res has #2, and parses as json | ||
pl.mature = new Date (parseInt (res[1])); | ||
pl._id = res[0]; | ||
self._verbose ('reserve: final pl to return is %j', pl, {}); | ||
callback (null, pl); | ||
self._verbose ('reserve: final pl to return is %j', res, {}); | ||
callback (null, res); | ||
} | ||
@@ -132,0 +110,0 @@ }); |
{ | ||
"name": "keuss", | ||
"version": "1.0.6", | ||
"keywords": ["queue", "job"], | ||
"version": "1.1.0", | ||
"keywords": ["queue", "job", "mongodb", "redis", "HA"], | ||
"homepage":"https://github.com/pepmartinez/keuss", | ||
@@ -6,0 +6,0 @@ "bugs": { |
@@ -79,3 +79,3 @@ # keuss | ||
* *mongo*, a mongodb-based backend that provides te full set of queue features, still with decent performance | ||
* *redis-oq*, backed using an ordered queue on top of redis (made in turn with a sorted set, a hash and some lua). Provides all queue features but reserve-commit-rollback (although this support is planned). Noticeable faster than mongodb | ||
* *redis-oq*, backed using an ordered queue on top of redis (made in turn with a sorted set, a hash and some lua). Provides all queue features including reserve-commit-rollback. Noticeable faster than mongodb | ||
* redis-list, backed using a redis list. Does not offer reserve-commit-rollback nor the ability to schedule, but is much faster than redis-oq | ||
@@ -90,3 +90,3 @@ | ||
redis-list | - | - | ||
redis-oq | x | - | ||
redis-oq | x | x | ||
mongo | x | x | ||
@@ -93,0 +93,0 @@ |
'use strict'; | ||
var uuid = require ('uuid'); | ||
const _s_lua_code_push = ` | ||
@@ -42,3 +45,3 @@ -- qname in KEYS[1] | ||
return { id, z_res[2], val } | ||
return val | ||
`; | ||
@@ -79,3 +82,3 @@ | ||
return { id, z_res[2], val } | ||
return val | ||
`; | ||
@@ -133,2 +136,3 @@ | ||
obj_val.reserved = false | ||
obj_val.tries = obj_val.tries + 1 | ||
redis.call ('HSET', 'keuss:q:ordered_queue:hash:' .. KEYS[1], id, cjson.encode (obj_val)) | ||
@@ -149,10 +153,12 @@ | ||
////////////////////////////////// | ||
push (id, mature, obj, done) { | ||
push (entry, done) { | ||
////////////////////////////////// | ||
this._rediscl.roq_push (this._name, id, mature, obj, function (err, res) { | ||
if (err) return done (err); | ||
// res is 1 | ||
done (null, res); | ||
}); | ||
var pl = { | ||
_id: entry.id || uuid.v4(), | ||
payload: entry.payload, | ||
tries: entry.tries, | ||
mature: (entry.mature || new Date ()).getTime () | ||
}; | ||
this._rediscl.roq_push (this._name, pl._id, pl.mature, JSON.stringify (pl), done); | ||
} | ||
@@ -165,5 +171,6 @@ | ||
if (err) return done (err); | ||
// res is [id, mature, text] | ||
done (null, res); | ||
if (!res) return done (); | ||
var obj = JSON.parse (res); | ||
obj.mature = obj.mature && new Date (obj.mature); | ||
done (null, obj); | ||
}); | ||
@@ -177,5 +184,6 @@ } | ||
if (err) return done (err); | ||
// res is [id, mature, text] | ||
done (null, res); | ||
if (!res) return done (); | ||
var obj = JSON.parse (res); | ||
obj.mature = obj.mature && new Date (obj.mature); | ||
done (null, obj); | ||
}); | ||
@@ -187,8 +195,3 @@ } | ||
////////////////////////////////// | ||
this._rediscl.roq_commit (this._name, id, function (err, res) { | ||
if (err) return done (err); | ||
// res is id | ||
done (null, res); | ||
}); | ||
this._rediscl.roq_commit (this._name, id, done); | ||
} | ||
@@ -199,8 +202,3 @@ | ||
////////////////////////////////// | ||
this._rediscl.roq_rollback (this._name, id, new Date().getTime (), function (err, res) { | ||
if (err) return done (err); | ||
// res is id | ||
done (null, res); | ||
}); | ||
this._rediscl.roq_rollback (this._name, id, new Date().getTime (), done); | ||
} | ||
@@ -207,0 +205,0 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
177019
3416