我有一个有效的服务器配置,其中无法访问redis,但服务器可以正常运行(我只是在无法找到redis时删除功能) .
但是,我无法很好地管理连接错误 . 我想知道连接错误何时失败并在这种情况下关闭客户端 .
我发现连接重试永远不会停止 . 实际上吞下了quit() - “排队等待下一次服务器连接” . - 被叫时
在没有 Build 连接的情况下,有没有办法杀死客户端?
var redis = require("redis"),
client = redis.createClient();
client.on("error", function(err) {
logme.error("Bonk. The worker framework cannot connect to redis, which might be ok on a dev server!");
logme.error("Resque error : "+err);
client.quit();
});
client.on("idle", function(err) {
logme.error("Redis queue is idle. Shutting down...");
});
client.on("end", function(err) {
logme.error("Redis is shutting down. This might be ok if you chose not to run it in your dev environment");
});
client.on("ready", function(err) {
logme.info("Redis up! Now connecting the worker queue client...");
});
-
错误 - Resque错误:错误:Redis连接到127.0.0.1:6379失败 - 连接ECONNREFUSED
-
错误 - Redis正在关闭 . 如果您选择不在开发环境中运行它,这可能没问题
-
错误 - Resque错误:错误:Redis连接到127.0.0.1:6379失败 - 连接ECONNREFUSED
-
错误 - Resque错误:错误:Redis连接到127.0.0.1:6379失败 - 连接ECONNREFUSED
-
错误 - Resque错误:错误:Redis连接到127.0.0.1:6379失败 - 连接ECONNREFUSED
-
错误 - Resque错误:错误:Redis连接到127.0.0.1:6379失败 - 连接ECONNREFUSED
有趣的是,“结束”事件会被释放 . 为什么?
1 回答
您可能希望仅使用client.end()强制结束与redis的连接,而不是使用
client.quit()
等待所有未完成请求的完成,然后发送QUIT
命令,如您所知,需要与redis完成工作连接 .