6

Node.js、Express、Redis、Socket.io を使用しています。Redis がダウンすると、Node.js は終了します。

どうすればこれを防ぐことができますか? おそらくどこかで再接続などをコード化する必要がありますか?

出力:

info - socket.io started
Express server listening on port 3000

エラー:

events.js:72
        throw er; // Unhandled 'error' event
              ^ Error: Redis connection to 127.0.0.1:6380 failed - connect ECONNREFUSED
    at RedisClient.on_error (...../node_modules/redis/index.js:151:24)
    at Socket.<anonymous> (...../node_modules/redis/index.js:86:14)
    at Socket.EventEmitter.emit (events.js:95:17)
    at net.js:426:14
    at process._tickCallback (node.js:415:13)
4

2 に答える 2

13

redis クライアント インスタンスのエラー ハンドラがないようです。コードからの抜粋を提供できますか? おそらく、私たちはその方法であなたをより良く助けることができます. エラーメッセージだけは少し少ないです。

推測する必要がある場合、エラーハンドラーはないと思います...

ここを参照してください: https://github.com/mranney/node_redis#usage

エラー時のコールバックはありますか?

例:

var redis = require("redis"),
client = redis.createClient();


// This is required so your error doesn't bubble
// upwards and kills your instance

client.on("error", function (err) {
    console.log("Error " + err);
});

node_redis クライアントは自動的に再接続するため、max_attempts やその他のオプションを構成できますが、それを処理する必要はありません。ここを参照してください: https://github.com/mranney/node_redis#rediscreateclientport-host-options

少しでも有益な情報を提供できればと思います

于 2013-09-01T16:10:52.570 に答える