mirror of
https://github.com/logos-blockchain/logos-execution-zone.git
synced 2026-03-23 18:53:13 +00:00
Merge pull request #368 from logos-blockchain/Pravdyvy/http-retries-in-seq-client
HTTP retries in sequencer client
This commit is contained in:
commit
4e112bc520
1
Cargo.lock
generated
1
Cargo.lock
generated
@ -1765,6 +1765,7 @@ dependencies = [
|
|||||||
"serde_with",
|
"serde_with",
|
||||||
"sha2",
|
"sha2",
|
||||||
"thiserror 2.0.18",
|
"thiserror 2.0.18",
|
||||||
|
"tokio-retry",
|
||||||
"url",
|
"url",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@ -22,3 +22,4 @@ bytesize.workspace = true
|
|||||||
base64.workspace = true
|
base64.workspace = true
|
||||||
url.workspace = true
|
url.workspace = true
|
||||||
logos-blockchain-common-http-client.workspace = true
|
logos-blockchain-common-http-client.workspace = true
|
||||||
|
tokio-retry.workspace = true
|
||||||
|
|||||||
@ -67,15 +67,24 @@ impl SequencerClient {
|
|||||||
"Calling method {method} with payload {request:?} to sequencer at {}",
|
"Calling method {method} with payload {request:?} to sequencer at {}",
|
||||||
self.sequencer_addr
|
self.sequencer_addr
|
||||||
);
|
);
|
||||||
let mut call_builder = self.client.post(self.sequencer_addr.clone());
|
|
||||||
|
|
||||||
if let Some(BasicAuth { username, password }) = &self.basic_auth {
|
let strategy = tokio_retry::strategy::FixedInterval::from_millis(10000).take(60);
|
||||||
call_builder = call_builder.basic_auth(username, password.as_deref());
|
|
||||||
}
|
|
||||||
|
|
||||||
let call_res = call_builder.json(&request).send().await?;
|
let response_vall = tokio_retry::Retry::spawn(strategy, || async {
|
||||||
|
let mut call_builder = self.client.post(self.sequencer_addr.clone());
|
||||||
|
|
||||||
let response_vall = call_res.json::<Value>().await?;
|
if let Some(BasicAuth { username, password }) = &self.basic_auth {
|
||||||
|
call_builder = call_builder.basic_auth(username, password.as_deref());
|
||||||
|
}
|
||||||
|
|
||||||
|
let call_res_res = call_builder.json(&request).send().await;
|
||||||
|
|
||||||
|
match call_res_res {
|
||||||
|
Err(err) => Err(err),
|
||||||
|
Ok(call_res) => call_res.json::<Value>().await,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.await?;
|
||||||
|
|
||||||
#[derive(Debug, Clone, Deserialize)]
|
#[derive(Debug, Clone, Deserialize)]
|
||||||
#[allow(dead_code)]
|
#[allow(dead_code)]
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user