diff --git a/lib/queue.js b/lib/queue.js index 2afc8b543..d8a0f31cd 100755 --- a/lib/queue.js +++ b/lib/queue.js @@ -121,7 +121,9 @@ const Queue = function Queue(name, url, opts) { opts.redis = { enableReadyCheck: false, - ...opts.redis + ...(_.isString(opts.redis) + ? { ...redisOptsFromUrl(opts.redis) } + : opts.redis) }; _.defaults(opts.redis, { @@ -913,7 +915,7 @@ Queue.prototype.isPaused = async function(isLocal) { }; Queue.prototype.run = function(concurrency, handlerName) { - if(!Number.isInteger(concurrency)) { + if (!Number.isInteger(concurrency)) { throw new Error('Cannot set Float as concurrency'); } const promises = []; diff --git a/test/test_child-pool.js b/test/test_child-pool.js index b5b09ef25..e75831906 100644 --- a/test/test_child-pool.js +++ b/test/test_child-pool.js @@ -151,12 +151,12 @@ describe('Child pool', () => { }); it('should not overwrite the the childPool singleton when isSharedChildPool is false', () => { - const childPoolA = new childPool(true) - const childPoolB = new childPool(false) + const childPoolA = new childPool(true); + const childPoolB = new childPool(false); const childPoolC = new childPool(true); - expect(childPoolA).to.be.equal(childPoolC) - expect(childPoolB).to.not.be.equal(childPoolA) - expect(childPoolB).to.not.be.equal(childPoolC) - }) + expect(childPoolA).to.be.equal(childPoolC); + expect(childPoolB).to.not.be.equal(childPoolA); + expect(childPoolB).to.not.be.equal(childPoolC); + }); }); diff --git a/test/test_queue.js b/test/test_queue.js index b7693262c..22061fb22 100644 --- a/test/test_queue.js +++ b/test/test_queue.js @@ -206,6 +206,23 @@ describe('Queue', () => { return queue.close(); }); + it('creates a queue using the supplied redis url as opts', () => { + const queue = new Queue('custom', { + redis: 'redis://abc:123@127.2.3.4:1234/1' + }); + + expect(queue.client.options.host).to.be.eql('127.2.3.4'); + expect(queue.eclient.options.host).to.be.eql('127.2.3.4'); + + expect(queue.client.options.port).to.be.eql(1234); + expect(queue.eclient.options.port).to.be.eql(1234); + + expect(queue.client.options.db).to.be.eql(1); + expect(queue.eclient.options.db).to.be.eql(1); + + return queue.close(); + }); + it('creates a queue using the supplied redis host', () => { const queue = new Queue('custom', { redis: { host: 'localhost' } });