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完成工作连接以完成.

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...