加入重连机制忽略日志记录错误

This commit is contained in:
2025-03-05 14:10:03 +08:00
parent a2155976f3
commit a15345adeb
5 changed files with 96 additions and 26 deletions

View File

@@ -16,8 +16,41 @@ class Redis {
_redis = redis;
}
Future<void> connect() async {
_command = await RedisConnection().connect(_config.host, _config.port);
Future<void> connect({reconnect = false}) async {
if (reconnect) {
print("尝试重连Redis");
}
Future.delayed(Duration(seconds: 1), () async {
try {
_command = await RedisConnection().connect(_config.host, _config.port);
print('Redis Connected successfully!');
//定时检测是否断开连接
Future.delayed(Duration(seconds: 1), () async {
do {
await Future.delayed(Duration(seconds: 5));
try {
var r = await _command!.send_object(["PING"]);
if (r != "PONG") {
break;
}
} catch (e) {
//发送数据失败
try {
print('Redis Connection check failed: $e');
_command!.get_connection().close();
} catch (o) {
//
}
break;
}
} while (true);
connect(reconnect: true);
});
} catch (e) {
print('Redis Connection error: $e');
connect(reconnect: reconnect);
}
});
}
Future<bool> set(String key, String value) async {