gpt4 book ai didi

Node.js/Redis - 等待连接?

转载 作者:可可西里 更新时间:2023-11-01 11:12:04 24 4
gpt4 key购买 nike

我正在使用 Node.js 开发一个应用程序,它使用 Redis 作为其主要数据库,并在 Redis 不可用时回退到 MySQL。

我遇到的问题是,不同于 node-mysql , node_redis不接受 createClient() 方法的回调,它只会在失败时发出错误。

我该如何构建我的代码来处理这个问题?

我需要的基本上是这个(伪代码):

if can_connect_on_redis
use_redis
else
if can_connect_mysql
use_mysql
else
fail
end
end

最佳答案

未经测试:

var client  = redis.createClient();
var isReady = false;
var isError = false;

client.on('error', function() {
if (! isReady && ! isError) {
// perform your MySQL setup here
}
isError = true;
}).on('ready', function() {
isReady = true;
});

想法是,当您在客户端准备就绪之前收到错误时,您可以假设与 Redis 的连接失败,然后您可以回退到使用 MySQL。因为客户端将尝试重新连接,所以它会不断生成错误事件,因此 isError 守卫。

如果您想在客户端(成功)建立连接后(例如,当 Redis 服务器停止时)回退到 MySQL,您可以删除 isReady 逻辑。

关于Node.js/Redis - 等待连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25956566/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com