Skip to content
This repository has been archived by the owner on Nov 6, 2019. It is now read-only.

Added support for specifying collection name for client #66

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,13 @@ var monq = require('monq');
var client = monq('mongodb://localhost:27017/monq_example');
```

You may also specify the collection name to be used for the jobs with the following option:

```javascript
var monq = require('monq');
var client = monq('mongodb://localhost:27017/monq_example', [], { name: 'yourpreferredcollectionname' });
```

Enqueue jobs by supplying a job name and a set of parameters. Below, the job `reverse` is being placed into the `example` queue:

```javascript
Expand Down
9 changes: 5 additions & 4 deletions lib/connection.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,18 @@ var Worker = require('./worker');

module.exports = Connection;

function Connection(uri, options) {
function Connection(uri, options, collectionParameters) {
this.db = mongo(uri, [], options);
this.collectionParameters = (collectionParameters || {});
}

Connection.prototype.worker = function (queues, options) {
var self = this;

if (queues === "*") {
var opts = {universal: true, collection: options.collection || 'jobs' };
var opts = {universal: true, collection: this.collectionParameters.name || 'jobs' };
options.universal = true;
queues = [new Queue('*', opts)];
queues = [new Queue('*', opts, this.collectionName)];
} else {
if (!Array.isArray(queues)) {
queues = [queues];
Expand All @@ -33,7 +34,7 @@ Connection.prototype.worker = function (queues, options) {
};

Connection.prototype.queue = function (name, options) {
return new Queue(this, name, options);
return new Queue(this, name, options, this.collectionParameters.name || 'jobs');
};

Connection.prototype.close = function () {
Expand Down
4 changes: 2 additions & 2 deletions lib/index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
var Connection = require('./connection');

module.exports = function (uri, options) {
return new Connection(uri, options);
module.exports = function (uri, options, collectionParameters) {
return new Connection(uri, options, collectionParameters);
};
7 changes: 4 additions & 3 deletions lib/queue.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,15 @@ var Job = require('./job');

module.exports = Queue;

function Queue(connection, name, options) {
if (typeof name === 'object' && options === undefined) {
function Queue(connection, name, options, collectionName) {
if (typeof name === 'object' && collectionName === undefined) {
collectionName = options;
options = name;
name = undefined;
}

options || (options = {});
options.collection || (options.collection = 'jobs');
options.collection = collectionName;
options.universal || (options.universal = false);

this.connection = connection;
Expand Down
2 changes: 1 addition & 1 deletion test/test_priority.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ describe('Priority', function () {
var handler, queue, worker;

beforeEach(function () {
queue = new Queue({ db: helpers.db });
queue = new Queue({ db: helpers.db }, null, null, 'testcollection');

handler = sinon.spy(function (params, callback) {
callback();
Expand Down
2 changes: 1 addition & 1 deletion test/test_queue.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ describe('Queue', function () {
var queue;

beforeEach(function () {
queue = new Queue({ db: helpers.db });
queue = new Queue({ db: helpers.db }, null, null, 'testcollection');
});

afterEach(function (done) {
Expand Down
2 changes: 1 addition & 1 deletion test/test_retries.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ describe('Retries', function () {
var queue, handler, worker, failed;

beforeEach(function () {
queue = new Queue({ db: helpers.db });
queue = new Queue({ db: helpers.db }, null, null, 'testcollection');

handler = sinon.spy(function (params, callback) {
return callback(new Error());
Expand Down
2 changes: 1 addition & 1 deletion test/test_timeout.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ describe('Timeout', function () {
var queue, handler, worker, failed;

beforeEach(function () {
queue = new Queue({ db: helpers.db });
queue = new Queue({ db: helpers.db }, null, null, 'testcollection');

handler = sinon.spy(function (params, callback) {
// Don't call the callback, let it timeout
Expand Down