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连接模式中是不可能的