加入重连机制忽略日志记录错误
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user