handle connect problems

This commit is contained in:
GroovieGermanikus 2024-01-18 13:38:15 +01:00
parent def0853c0f
commit ca55a8bba8
No known key found for this signature in database
GPG Key ID: 5B6EB831A5CD2015
1 changed files with 21 additions and 25 deletions

View File

@ -355,18 +355,8 @@ pub fn create_geyser_reconnecting_task(
client.subscribe_once2(subscribe_filter))
.await;
let subscribe_result;
match subscribe_result_timeout.map_err(|_| Status::unknown("unspecific subscribe timeout")) {
Ok(fooo) => {
subscribe_result = fooo;
}
Err(_elapsed) => {
todo!()
}
}
// maybe not optimal
// let subscribe_result = subscribe_result_timeout.map_err(|_| Status::unknown("unspecific subscribe timeout"));
match subscribe_result_timeout {
Ok(subscribe_result) => {
match subscribe_result {
Ok(geyser_stream) => {
Ready(attempt, geyser_stream)
@ -386,6 +376,12 @@ pub fn create_geyser_reconnecting_task(
}
}
}
Err(_elapsed) => {
warn!("! subscribe failed with timeout on {} - retrying", grpc_source);
RecoverableConnectionError(attempt)
}
}
}
RecoverableConnectionError(attempt) => {
let backoff_secs = 1.5_f32.powi(attempt as i32).min(15.0);
info!("! waiting {} seconds, then reconnect to {}", backoff_secs, grpc_source);