Skip to content

Commit a246cb7

Browse files
committed
fix: make service discovery use a single client
1 parent 0e85267 commit a246cb7

File tree

1 file changed

+8
-8
lines changed
  • packages/common/service-discovery/src

1 file changed

+8
-8
lines changed

packages/common/service-discovery/src/lib.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,18 @@ use std::{future::Future, sync::Arc, time::Duration};
22

33
use rand::Rng;
44
use reqwest::Client;
5+
use rivet_api::models::{ProvisionDatacentersGetServersResponse, ProvisionServer};
56
use tokio::{
67
sync::{Mutex, RwLock},
78
task::JoinHandle,
89
};
910
use url::Url;
10-
use rivet_api::models::{ProvisionServer, ProvisionDatacentersGetServersResponse};
1111

1212
pub struct ServiceDiscovery {
1313
fetch_endpoint: Url,
1414
last: RwLock<Vec<ProvisionServer>>,
1515
handle: Mutex<Option<JoinHandle<()>>>,
16+
client: Client,
1617
}
1718

1819
impl ServiceDiscovery {
@@ -21,6 +22,7 @@ impl ServiceDiscovery {
2122
fetch_endpoint,
2223
last: RwLock::new(Vec::new()),
2324
handle: Mutex::new(None),
25+
client: Client::new(),
2426
})
2527
}
2628

@@ -36,10 +38,8 @@ impl ServiceDiscovery {
3638

3739
let self2 = self.clone();
3840
*guard = Some(tokio::task::spawn(async move {
39-
let client = Client::new();
40-
4141
loop {
42-
let res = match self2.fetch_inner(&client).await {
42+
let res = match self2.fetch_inner().await {
4343
Ok(res) => res,
4444
Err(err) => {
4545
tracing::error!(?err, "fetch service discovery failed");
@@ -70,12 +70,12 @@ impl ServiceDiscovery {
7070

7171
/// Manually fetches the endpoint.
7272
pub async fn fetch(&self) -> Result<Vec<ProvisionServer>, reqwest::Error> {
73-
let client = Client::new();
74-
Ok(self.fetch_inner(&client).await?.servers)
73+
Ok(self.fetch_inner().await?.servers)
7574
}
7675

77-
async fn fetch_inner(&self, client: &Client) -> Result<ProvisionDatacentersGetServersResponse, reqwest::Error> {
78-
Ok(client
76+
async fn fetch_inner(&self) -> Result<ProvisionDatacentersGetServersResponse, reqwest::Error> {
77+
Ok(self
78+
.client
7979
.get(self.fetch_endpoint.clone())
8080
.send()
8181
.await?

0 commit comments

Comments
 (0)