Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 具有createClientFactory的Kue工作者:只能使用订户命令_Javascript_Node.js_Redis_Kue - Fatal编程技术网

Javascript 具有createClientFactory的Kue工作者:只能使用订户命令

Javascript 具有createClientFactory的Kue工作者:只能使用订户命令,javascript,node.js,redis,kue,Javascript,Node.js,Redis,Kue,我正在努力让我的kue工作人员建立起来,并发现了一些奇怪的事情。如果我使用默认的kue redis连接创建队列,那么一切都能正常工作: var kue = require('kue') , redis = require('redis'); var q = kue.createQueue(); q.process('cypher', function(job, done){}); 这个工人启动得很好。但是,如果我尝试用自己的连接覆盖默认的redis连接,我会得到一个 错误:在订阅服

我正在努力让我的kue工作人员建立起来,并发现了一些奇怪的事情。如果我使用默认的kue redis连接创建队列,那么一切都能正常工作:

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){});
这似乎毫无意义。我想我可能犯了一个典型的异步错误,但即使是下面的错误,我也会得到相同的错误有什么见解吗?

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

                return redisClient;
            }
        }
    });

    q.process('cypher', function(job, done){});
});

每次调用factory方法时,实际上并不是在传递新客户机。从createClientFactory返回一个singleton实例会使kue对命令和发布/订阅使用相同的连接,这在redis连接模式中是不可能的

我应该从名称:createClientFactory以及它使用函数这一事实知道。尽管如此,从文件上看还不是很清楚。也许这个问题会节省一些时间!