Socket
Socket
Sign inDemoInstall

keuss

Package Overview
Dependencies
Maintainers
1
Versions
76
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

keuss - npm Package Compare versions

Comparing version 1.3.4 to 1.3.5

examples/with-mongocapped-stats-consumer-producer.js

100

cli/cl.js

@@ -1,5 +0,5 @@

var winston = require ('winston');
var program = require ('commander');
program
program
.version ('0.0.1')

@@ -16,33 +16,4 @@ .usage ('[options]')

.option ('-t, --stats <value>', 'use stats backend. defaults to \'mem\'')
.option ('-v, --verbose', 'verbose log')
.option ('-l, --log [value]', 'use logfile, defaults to stderr/console')
.parse (process.argv);
var logger = undefined;
if (program.log) {
logger = new (winston.Logger)({
transports: [
new (winston.transports.File)({
filename: program.log,
level: (program.verbose ? 'verbose' : 'info'),
maxsize:1024*1024*10,
maxFiles: 5,
handleExceptions: true,
humanReadableUnhandledException: true,
json: false
})
]
});
}
else {
logger = new (winston.Logger)({
transports: [
new (winston.transports.Console)({
level: (program.verbose ? 'verbose' : 'info')
})
]
});
}
var MQ = require ('../backends/' + (program.backend || 'mongo'));

@@ -61,16 +32,16 @@

if (err) {
logger.error ('consume_loop: get err --> %s', err, {});
console.error ('consume_loop: get err --> %s', err, {});
}
if (program.dumpProduced) {
logger.info ('%j', res, {});
console.log ('%j', res, {});
}
else if (program.verbose) {
logger.verbose ('consume_loop: get %j', res, {});
console.log ('consume_loop: get %j', res, {});
}
if (((n - 1) % 1000) == 0) {
if (((n - 1) % 10000) == 0) {
var diff = process.hrtime (get_hrtime);
var elapsed = (diff[0] * 1e9 + diff[1]) / 1e6;
logger.info ('consume_loop: get remaining %d, elapsed %d', n - 1, elapsed);
console.log ('consume_loop: get remaining %d, elapsed %d', n - 1, elapsed);
get_hrtime = process.hrtime ();

@@ -96,13 +67,13 @@ }

if (err) {
logger.error ('produce_loop: put err --> %s', err, {});
console.error ('produce_loop: put err --> %s', err, {});
}
if (program.verbose) {
logger.verbose ('produce_loop: put %s', res, {});
console.log ('produce_loop: put %s', res, {});
}
if (((n - 1) % 1000) == 0) {
if (((n - 1) % 10000) == 0) {
var diff = process.hrtime (put_hrtime);
var elapsed = (diff[0] * 1e9 + diff[1]) / 1e6;
logger.info ('produce_loop: put remaining: %d, elapsed %d', n - 1, elapsed);
console.log ('produce_loop: put remaining: %d, elapsed %d', n - 1, elapsed);
put_hrtime = process.hrtime ();

@@ -115,38 +86,31 @@ }

MQ ({logger: logger}, function (err, factory) {
if (err) {
return logger.error ('MQ.init: %s', err, {});
}
var q_opts = {};
logger.verbose ('MQ.init: backend initiated');
var q_opts = {
logger: logger
};
if (program.verbose) {
q_opts.level = 'verbose'
if (program.signaller) {
var signal_provider = require ('../signal/' + program.signaller);
q_opts.signaller = {
provider: new signal_provider ()
}
console.log ('use signaller %s', signal_provider.Type())
}
if (program.signaller) {
var signal_provider = require ('../signal/' + program.signaller);
q_opts.signaller = {
provider: new signal_provider ()
}
if (program.stats) {
var stats_provider = require ('../stats/' + program.stats);
q_opts.stats = {
provider: new stats_provider ()
}
if (program.stats) {
var stats_provider = require ('../stats/' + program.stats);
q_opts.stats = {
provider: new stats_provider ()
}
}
MQ (q_opts, function (err, factory) {
if (err) {
return console.error ('MQ.init: %s', err, {});
}
logger.verbose ('MQ.init: creating queue with options %j', q_opts, {});
console.log ('MQ.init: backend initiated');
var q = factory.queue ('test', q_opts);
var q = factory.queue ('test', {});
if (program.consumer) {
logger.verbose ('MQ.init: initiating consume loop');
console.log ('MQ.init: initiating consume loop');
consume_loop (q, program.consumerNum);

@@ -156,5 +120,5 @@ }

if (program.producer) {
logger.verbose ('MQ.init: initiating produce loop');
console.log ('MQ.init: initiating produce loop');
produce_loop (q, program.producerNum);
}
});
{
"name": "keuss",
"version": "1.3.4",
"version": "1.3.5",
"keywords": [
"queue",
"persistent",
"job",

@@ -33,3 +34,4 @@ "mongodb",

"mongodb": "2.2.34",
"uuid": "3.2.1"
"uuid": "3.2.1",
"mubsub": "1.4.0"
},

@@ -36,0 +38,0 @@ "devDependencies": {

# keuss
Job Queues an pipelines on selectable backends (for now: mongodb, redis) for node.js
Job Queues an pipelines on selectable backends (for now: mongodb and redis) for node.js
# Contents
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [About](#about)
- [Concepts](#concepts)
- [Queue](#queue)
- [Pipeline](#pipeline)
- [Storage](#storage)
- [keuss](#keuss)
- [Contents](#contents)
- [About](#about)
- [Concepts](#concepts)
- [Queue](#queue)
- [Pipeline](#pipeline)
- [Storage](#storage)
- [Signaller](#signaller)
- [Stats](#stats)
- [How all fits together](#how-all-fits-together)
- [Install](#install)
- [Usage](#usage)
- [Factory API](#factory-api)
- [Initialization](#initialization)
- [Queue creation](#queue-creation)
- [Signaller](#signaller)
- [Stats](#stats)
- [How all fits together](#how-all-fits-together)
- [Install](#install)
- [Usage](#usage)
- [Factory API](#factory-api)
- [Initialization](#initialization)
- [Queue creation](#queue-creation)
- [Signaller](#signaller-1)
- [Stats](#stats-1)
- [Queue API](#queue-api)
- [Get Stats](#get-stats)
- [Queue name](#queue-name)
- [Queue type](#queue-type)
- [Queue occupation](#queue-occupation)
- [Total Queue occupation](#total-queue-occupation)
- [Time of schedule of next message](#time-of-schedule-of-next-message)
- [Add element to queue](#add-element-to-queue)
- [Get element from queue](#get-element-from-queue)
- [Cancel a pending Pop](#cancel-a-pending-pop)
- [Commit a reserved element](#commit-a-reserved-element)
- [Rolls back a reserved element](#rolls-back-a-reserved-element)
- [Redis connections](#redis-connections)
- [Reserve & (commit | rollback)](#reserve--commit--rollback)
- [Working with no signallers](#working-with-no-signallers)
- [Examples](#examples)
- [Queue API](#queue-api)
- [Get Stats](#get-stats)
- [Queue name](#queue-name)
- [Queue type](#queue-type)
- [Queue occupation](#queue-occupation)
- [Total Queue occupation](#total-queue-occupation)
- [Time of schedule of next message](#time-of-schedule-of-next-message)
- [Add element to queue](#add-element-to-queue)
- [Get element from queue](#get-element-from-queue)
- [Cancel a pending Pop](#cancel-a-pending-pop)
- [Commit a reserved element](#commit-a-reserved-element)
- [Rolls back a reserved element](#rolls-back-a-reserved-element)
- [Redis connections](#redis-connections)
- [Reserve & (commit | rollback)](#reserve-commit-rollback)
- [Working with no signallers](#working-with-no-signallers)
- [Examples](#examples)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
## About
Keuss is an attempt or experiment to provide a serverless, persistent and high-available
queue middleware supporting delays/schedule, using mongodb and redis to provide most of the backend
needs
Keuss is an attempt or experiment to provide a serverless, persistent and kigh-available queue middleware supporting delays/schedule, using mongodb and redis to provide most of the backend needs. As of now, it has evolved into a rather capable and complete queue middleware

@@ -101,2 +94,3 @@ The underlying idea is that the key to provide persistency, HA and load balance is to have a storage subsystem

* *redis-pubsub*: uses the pubsub subsystem provided by redis
* *mongo-capped*: uses pubsub on top of a mongodb capped collection, using [mubsub](https://www.npmjs.com/package/mubsub)

@@ -109,2 +103,3 @@ So far, the only events published by keuss is *element inserted in queue X*, which allows other clients waiting for elements to be available to wake up and retry. A client will not fire an event if another one of the same type (same client, same queue) was already fired less than 50ms ago

* *redis*: backed by redis hashes. Modifications are buffered in memory and flushed every 100ms
* *mongo*: backed by mongodb usnig one object per queue inside a singel collection. Modifications are buffered in memory and flushed every 100ms

@@ -111,0 +106,0 @@ ### How all fits together

@@ -9,2 +9,3 @@

var Redis = require ('../stats/redis');
var Mongo = require ('../stats/mongo');

@@ -253,1 +254,2 @@ var qclass = 'some-class';

run_tests_on_class (Redis);
run_tests_on_class (Mongo);
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc