diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2025-09-13 16:14:02 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2025-09-13 16:14:02 +0800 |
| commit | b03c840683dd92f78c91ba48f0d1abd606bf0ff1 (patch) | |
| tree | 5c7bd1da80fdb6587243f9f0af6076464c2bee25 /src | |
| parent | 40099749a6b264593ad54032411f02df9967790c (diff) | |
httpconector: handle TOO_MANY_REQUESTS
Diffstat (limited to 'src')
| -rw-r--r-- | src/client/connector/connectors/httpconnector.rs | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/client/connector/connectors/httpconnector.rs b/src/client/connector/connectors/httpconnector.rs index 84596c9..5a5b0df 100644 --- a/src/client/connector/connectors/httpconnector.rs +++ b/src/client/connector/connectors/httpconnector.rs @@ -1,4 +1,5 @@ use crate::connector::*; +use std::{thread::sleep, time::Duration}; pub(crate) struct HTTPConnector { prev: String, @@ -19,10 +20,19 @@ impl Connection for HTTPConnector { fn update(&self) -> Option<Result<Self::Success, Self::Err>> { let res = match reqwest::blocking::get(self.url.as_str()) { - Ok(resp) => match resp.text() { - Ok(text) => text, - Err(e) => return Some(Err(e)), - }, + Ok(resp) => { + match resp.status() { + reqwest::StatusCode::TOO_MANY_REQUESTS(e) => { + sleep(Duration::from_secs(5)); + return e; + } + status => return Some(Err(status)), + } + match resp.text() { + Ok(text) => text, + Err(e) => return Some(Err(e)), + } + } Err(e) => return Some(Err(e)), }; |
