From b03c840683dd92f78c91ba48f0d1abd606bf0ff1 Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Sat, 13 Sep 2025 16:14:02 +0800 Subject: httpconector: handle TOO_MANY_REQUESTS --- src/client/connector/connectors/httpconnector.rs | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'src') 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> { 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)), }; -- cgit v1.2.3