当没有连接时,你如何杀死一个redis客户端?

我有一个有效的服务器configuration,其中redis不能被访问,但服务器可以正常工作(当redis无法find时,我只是将function剥离)。

但是,我无法很好地pipe理连接错误。 我想知道什么时候连接错误失败,并在这种情况下closures客户端。

我发现连接重试不会停止。 而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正在closures。 如果你select不在你的开发环境中运行,这可能是好的
  • 错误 – 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

有趣的事情是“结束”事件被发射的事实。 为什么?

您可能只想强制结束connection.end client.end()而不是使用client.quit()等待完成所有未完成的请求,然后发送QUIT命令,如您所知需要一个工作连接用redis来完成。