From 13f1e59e7ac9fab75a13d46a98d3d0f0fbcbde60 Mon Sep 17 00:00:00 2001 From: Sik Yoon Date: Wed, 4 Oct 2023 20:08:21 +0900 Subject: [PATCH] Add retry code --- src/main.rs | 54 +++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 38 insertions(+), 16 deletions(-) diff --git a/src/main.rs b/src/main.rs index 4f2023e..8e9e696 100644 --- a/src/main.rs +++ b/src/main.rs @@ -485,16 +485,25 @@ async fn main() -> Result<(), Box> { Ok(T) => match tx2_changed { Ok(T) => { let mut tradefee_vec_temp: Vec = Vec::new(); - let result = request_others::request_trade_fee( - API_KEY, - SECRET_KEY, - local_epoch, - difference_epoch, - &client, - &mut tradefee_vec_temp, - ) - .await; + let mut result; + loop { + result = request_others::request_trade_fee( + API_KEY, + SECRET_KEY, + local_epoch, + difference_epoch, + &client, + &mut tradefee_vec_temp, + ) + .await; + if tradefee_vec_temp.len() == 0 { + sleep(Duration::from_secs(3)).await; + } else { + break; + } + } + match result { Ok(T) => { tx_tradefee_vec.send_modify(|vec| *vec = tradefee_vec_temp); @@ -880,11 +889,22 @@ async fn main() -> Result<(), Box> { .unwrap(); loop { let mut exchange_info_data_temp: Vec = Vec::new(); - let result = coin_health_check_team::request_others::request_exchange_infomation( - &client, - &mut exchange_info_data_temp, - ) - .await; + let mut result; + loop { + result = coin_health_check_team::request_others::request_exchange_infomation( + &client, + &mut exchange_info_data_temp, + ) + .await; + + // retry + if exchange_info_data_temp.len() == 0 { + sleep(Duration::from_secs(3)).await; + } else { + break; + } + } + match result { Ok(T) => { tx_exchange_info_data.send_modify(|vec| *vec = exchange_info_data_temp); @@ -997,12 +1017,12 @@ async fn main() -> Result<(), Box> { .expect("The mpsc channel has been closed."); } Err(E) => { + eprintln!("Couldn't execute strategists."); } } // sleep as much as the loop recurs per 1 second if all operation finished within 1 second. elapsed_time = instant.elapsed().as_millis(); - println!("elapsed time: {}", elapsed_time); if 250 > elapsed_time { sleep(Duration::from_millis((250 - elapsed_time) as u64)).await; } @@ -1093,7 +1113,9 @@ async fn main() -> Result<(), Box> { .send(20) .expect("The mpsc channel has been closed."); } - Err(E) => {} + Err(E) => { + eprint!("Error: {:?}", E); + } } // sleep as much as the loop recurs per 200ms second if all operation finished within 200ms