微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

node.js – 如果没有连接,你如何杀死redis客户端?

我有一个有效的服务器配置,其中无法访问redis,但服务器可以正常运行(我只是在无法找到redis删除功能).

但是,我无法很好地管理连接错误.我想知道连接错误何时失败并在这种情况下关闭客户端.

我发现连接重试永远不会停止.实际上吞下了quit() – “排队等待下一次服务器连接”. – 被叫时

在没有建立连接的情况下,有没有办法杀死客户端?

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...");
});

> ERROR – Resque错误错误:Redis连接到127.0.0.1:6379失败 – 连接ECONNREFUSED
>错误 – Redis正在关闭.如果您选择不在开发环境中运行它,这可能没问题
> ERROR – Resque错误错误:Redis连接到127.0.0.1:6379失败 – 连接ECONNREFUSED
> ERROR – Resque错误错误:Redis连接到127.0.0.1:6379失败 – 连接ECONNREFUSED
> ERROR – Resque错误错误:Redis连接到127.0.0.1:6379失败 – 连接ECONNREFUSED
> ERROR – Resque错误错误:Redis连接到127.0.0.1:6379失败 – 连接ECONNREFUSED

有趣的是,“结束”事件会被释放.为什么?

解决方法

您可能希望在 client.end()错误时强制结束与redis的连接,而不是使用等待所有未完成请求完成的client.quit()然后发送QUIT命令,如您所知需要使用redis完成工作连接以完成.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐