1

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

1 に答える 1