Kue worker with with with createClientFactory:只能使用订阅者命令
Kue worker with with createClientFactory: only subscriber commands may be used
我正在努力设置我的 kue workers,并发现了一些奇怪的东西。如果我使用默认的 kue redis 连接创建我的队列,一切正常:
var kue = require('kue')
, redis = require('redis');
var q = kue.createQueue();
q.process('cypher', function(job, done){});
worker完美启动。但是,如果我尝试用我自己的连接覆盖默认的 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){});
});
您实际上并不是在每次调用工厂方法时都传递一个新的客户端。从 createClientFactory 返回单例实例使 kue 对命令和 pub/sub 使用相同的连接,这在 redis 连接模式中是不可能的
我正在努力设置我的 kue workers,并发现了一些奇怪的东西。如果我使用默认的 kue redis 连接创建我的队列,一切正常:
var kue = require('kue')
, redis = require('redis');
var q = kue.createQueue();
q.process('cypher', function(job, done){});
worker完美启动。但是,如果我尝试用我自己的连接覆盖默认的 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){});
});
您实际上并不是在每次调用工厂方法时都传递一个新的客户端。从 createClientFactory 返回单例实例使 kue 对命令和 pub/sub 使用相同的连接,这在 redis 连接模式中是不可能的