Home Articles

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

Asked
Viewed 561 times
5

我有一个有效的服务器配置,其中无法访问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 Answer

  • 1

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

Related