Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

mongodb-queue

Package Overview
Dependencies
Maintainers
1
Versions
19
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mongodb-queue - npm Package Compare versions

Comparing version 0.4.0 to 0.5.0

23

mongodb-queue.js

@@ -27,8 +27,23 @@ /**

module.exports = function(mongoDbClient, name, opts, callback) {
if ( !callback ) {
callback = opts
opts = {}
}
var queue = new Queue(mongoDbClient, name, opts)
queue.col.ensureIndex({ visible : 1 }, function(err) {
if (err) return callback(err)
queue.col.ensureIndex({ ack : 1 }, { unique : true, sparse : true }, function(err) {
if (err) return callback(err)
callback(null, queue)
})
})
}
// the Queue object itself
function Queue(mongoDbClient, name, opts) {
if (!(this instanceof Queue)) {
return new Queue(mongoDbClient, name, opts)
if ( !mongoDbClient ) {
throw new Error("mongodb-queue: provide a mongodb.MongoClient")
}
if ( !name ) {

@@ -134,3 +149,1 @@ throw new Error("mongodb-queue: provide a queue name")

}
module.exports = Queue
{
"name": "mongodb-queue",
"version": "0.4.0",
"version": "0.5.0",
"description": "Message queues which uses MongoDB.",

@@ -5,0 +5,0 @@ "main": "mongodb-queue.js",

@@ -5,2 +5,5 @@ # mongodb-queue #

A really light-weight way to create queue with a nice API if you're already
using MongoDB.
## Synopsis ##

@@ -12,5 +15,10 @@

var mongodb = require('mongodb')
var mongoDbQueue = require('mongodb-queue')
var con = 'mongodb://localhost:27017/test'
mongodb.MongoClient.connect(con, function(err, db) {
var queue = Queue(db, 'my-queue')
mongoDbQueue(db, 'my-queue', function(err, queue) {
// the 'queue'
})
})

@@ -56,8 +64,15 @@ ```

To create a queue, just call `new` (and if you forget to do that, we'll do it for you)
and pass it the MongoClient, a name and an optional set of options. These are equivalent:
To create a queue, call the exported function with the `MongoClient`, the name
and a set of opts. The MongoDB collection used is the same name as the name
passed in:
```
var q1 = new Queue(db, 'a-queue')
var q2 = Queue(db, 'a-queue')
var mongoDbQueue = require('mongodb-queue')
mongoDbQueue(db, 'a-queue', function(err, queue) {
// a queue
})
mongoDbQueue(db, 'a-queue', function(err, queue) {
// another queue which uses the same collection as above
})
```

@@ -70,3 +85,5 @@

```
var imageResizeQueue = Quene(db, 'resize-queue', { visibility : 30, delay : 15 })
mongoDbQueue(db, 'resize-queue', { visibility : 30, delay : 15 }, function(err, resizeQueue) {
// the resizeQueue
})
```

@@ -84,4 +101,8 @@

```
var resizeQueue = Queue(db, 'resize-image')
var notifyQueue = Queue(db, 'notify-owner')
mongoDbQueue(db, 'resize-queue', function(err, resizeQueue) {
// the resizeQueue
})
mongoDbQueue(db, 'notify-queue', function(err, notifyQueue) {
// the notifyQueue
})
```

@@ -103,3 +124,5 @@

```
var queue = Queue(db, 'my-queue', { visibility : 15 })
mongoDbQueue(db, 'queue', { visibility : 15 }, function(err, queue) {
// the queue
})
```

@@ -122,3 +145,5 @@

```
var queue = Queue(db, 'my-queue', { delay : 10 })
mongoDbQueue(db, 'queue', { delay : 10 }, function(err, queue) {
// the queue
})
```

@@ -145,2 +170,8 @@

### 0.5.0 (2014-03-21) ###
* [NEW] Now adds two indexes onto the MongoDB collection used for the message
* [CHANGE] The queue is now created by calling the async exported function
* [DOC] Update to show how the queues are now created
### 0.4.0 (2014-03-20) ###

@@ -147,0 +178,0 @@

@@ -1,21 +0,18 @@

var mongodb = require('mongodb')
var async = require('async')
var test = require('tape')
var Queue = require('../')
var setup = require('./setup.js')
var mongoDbQueue = require('../')
var conStr = 'mongodb://localhost:27017/mongodb-queue'
setup(function(db) {
test('first test', function(t) {
var queue = Queue(db, 'default')
t.ok(queue, 'Queue created ok')
t.end()
mongoDbQueue(db, 'default', function(err, queue) {
t.ok(queue, 'Queue created ok')
t.end()
})
});
test('single round trip', function(t) {
var queue = Queue(db, 'default')
var queue
var msg

@@ -26,2 +23,8 @@

function(next) {
mongoDbQueue(db, 'default', function(err, q) {
queue = q
next(err)
})
},
function(next) {
queue.add('Hello, World!', function(err, id) {

@@ -28,0 +31,0 @@ t.ok(!err, 'There is no error when adding a message.')

@@ -5,3 +5,3 @@ var async = require('async')

var setup = require('./setup.js')
var Queue = require('../')
var mongoDbQueue = require('../')

@@ -11,3 +11,3 @@ setup(function(db) {

test('delay: check messages on this queue are returned after the delay', function(t) {
var queue = new Queue(db, 'delay', { delay : 3 })
var queue

@@ -17,2 +17,8 @@ async.series(

function(next) {
mongoDbQueue(db, 'delay', { delay : 3 }, function(err, q) {
queue = q
next(err)
})
},
function(next) {
queue.add('Hello, World!', function(err, id) {

@@ -19,0 +25,0 @@ t.ok(!err, 'There is no error when adding a message.')

@@ -5,3 +5,3 @@ var async = require('async')

var setup = require('./setup.js')
var Queue = require('../')
var mongoDbQueue = require('../')

@@ -12,4 +12,4 @@ var total = 250

test('add ' + total + ' messages, get ' + total + ' back', function(t) {
var queue = new Queue(db, 'multi')
test('multi: add ' + total + ' messages, get ' + total + ' back', function(t) {
var queue
var msgs = []

@@ -20,2 +20,8 @@

function(next) {
mongoDbQueue(db, 'multi', function(err, q) {
queue = q
next(err)
})
},
function(next) {
var i, done = 0

@@ -22,0 +28,0 @@ for(i=0; i<total; i++) {

@@ -5,3 +5,3 @@ var async = require('async')

var setup = require('./setup.js')
var Queue = require('../')
var mongoDbQueue = require('../')

@@ -11,4 +11,3 @@ setup(function(db) {

test('ping: check a retrieved message with a ping can still be acked', function(t) {
var queue = new Queue(db, 'ping', { visibility : 5 })
var queue
var msg

@@ -19,2 +18,8 @@

function(next) {
mongoDbQueue(db, 'ping', { visibility : 5 }, function(err, q) {
queue = q
next(err)
})
},
function(next) {
queue.add('Hello, World!', function(err, id) {

@@ -59,3 +64,2 @@ t.ok(!err, 'There is no error when adding a message.')

function(err) {
console.log('err:', err)
if (err) t.fail(err)

@@ -62,0 +66,0 @@ t.pass('Finished test ok')

@@ -5,3 +5,3 @@ var async = require('async')

var setup = require('./setup.js')
var Queue = require('../')
var mongoDbQueue = require('../')

@@ -11,3 +11,3 @@ setup(function(db) {

test('visibility: check message is back in queue after 3s', function(t) {
var queue = new Queue(db, 'visibility', { visibility : 3 })
var queue

@@ -17,2 +17,8 @@ async.series(

function(next) {
mongoDbQueue(db, 'visibility', { visibility : 3 }, function(err, q) {
queue = q
next(err)
})
},
function(next) {
queue.add('Hello, World!', function(err) {

@@ -58,4 +64,3 @@ t.ok(!err, 'There is no error when adding a message.')

test("visibility: check that a late ack doesn't remove the msg", function(t) {
var queue = new Queue(db, 'visibility', { visibility : 3 })
var queue
var originalAck

@@ -66,2 +71,8 @@

function(next) {
mongoDbQueue(db, 'visibility', { visibility : 3 }, function(err, q) {
queue = q
next(err)
})
},
function(next) {
queue.add('Hello, World!', function(err) {

@@ -68,0 +79,0 @@ t.ok(!err, 'There is no error when adding a message.')

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