私は、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){});
});