Kue worker with createClientFactory:只能使用订阅者命令

我正在努力让我的工人build立起来,发现了一些奇怪的东西。 如果我使用默认的kue redis连接创build我的队列,那么一切都很完美:

var kue = require('kue') , redis = require('redis'); var q = kue.createQueue(); q.process('cypher', function(job, done){}); 

工人完美地启动。 但是,如果我尝试覆盖默认的redis连接与我自己的我得到一个

错误:在用户模式下连接,只能使用用户命令

当执行命中下面的q.process函数时:

 var kue = require('kue') , redis = require('redis'); var redisClient = redis.createClient(); var q = kue.createQueue({ redis: { createClientFactory: function(){ return redisClient; } } }); q.process('cypher', function(job, done){}); 

这似乎没有任何意义。 我想也许我犯了一个经典的asynchronous错误,但即使是以下是我得到同样的错误。 任何见解?

 redisClient.on('connect', function () { console.log('gotten here!!!'); var q = kue.createQueue({ redis: { createClientFactory: function(){ return redisClient; } } }); q.process('cypher', function(job, done){}); }); 

每次调用工厂方法时,实际上都不会传递新客户端。 从createClientFactory返回一个单例实例使得kue使用相同的连接来执行命令和pub / sub,这在redis连接模式中是不可能的