From e69450d1dc1c4a4fbc61553657cec28cac8c7ae4 Mon Sep 17 00:00:00 2001 From: Bulat Kurbanov Date: Mon, 13 May 2024 12:49:40 +0200 Subject: [PATCH] Fix for reuse connections --- src/db.rs | 2 +- src/services/book_library/mod.rs | 7 ++++--- src/services/downloader/mod.rs | 7 +++++-- src/services/telegram_files/mod.rs | 7 +++++-- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/db.rs b/src/db.rs index 108a8db..87d38c7 100644 --- a/src/db.rs +++ b/src/db.rs @@ -2,7 +2,7 @@ use crate::{config::CONFIG, prisma::PrismaClient}; pub async fn get_prisma_client() -> PrismaClient { let database_url: String = format!( - "postgresql://{}:{}@{}:{}/{}?connection_limit=1", + "postgresql://{}:{}@{}:{}/{}?connection_limit=10", CONFIG.postgres_user, CONFIG.postgres_password, CONFIG.postgres_host, diff --git a/src/services/book_library/mod.rs b/src/services/book_library/mod.rs index 6f0b68c..0ca97fa 100644 --- a/src/services/book_library/mod.rs +++ b/src/services/book_library/mod.rs @@ -1,11 +1,14 @@ pub mod types; +use once_cell::sync::Lazy; use serde::de::DeserializeOwned; use crate::config::CONFIG; use self::types::{BaseBook, Page}; +pub static CLIENT: Lazy = Lazy::new(reqwest::Client::new); + async fn _make_request( url: &str, params: Vec<(&str, String)>, @@ -13,11 +16,9 @@ async fn _make_request( where T: DeserializeOwned, { - let client = reqwest::Client::new(); - let formated_url = format!("{}{}", CONFIG.library_url, url); - let response = client + let response = CLIENT .get(formated_url) .query(¶ms) .header("Authorization", CONFIG.library_api_key.clone()) diff --git a/src/services/downloader/mod.rs b/src/services/downloader/mod.rs index c410a36..96e0725 100644 --- a/src/services/downloader/mod.rs +++ b/src/services/downloader/mod.rs @@ -1,8 +1,11 @@ +use once_cell::sync::Lazy; use reqwest::{Response, StatusCode}; use serde::Deserialize; use crate::config::CONFIG; +pub static CLIENT: Lazy = Lazy::new(reqwest::Client::new); + #[derive(Deserialize)] pub struct FilenameData { pub filename: String, @@ -19,7 +22,7 @@ pub async fn download_from_downloader( CONFIG.downloader_url ); - let response = reqwest::Client::new() + let response = CLIENT .get(url) .header("Authorization", &CONFIG.downloader_api_key) .send() @@ -42,7 +45,7 @@ pub async fn get_filename( CONFIG.downloader_url ); - let response = reqwest::Client::new() + let response = CLIENT .get(url) .header("Authorization", &CONFIG.downloader_api_key) .send() diff --git a/src/services/telegram_files/mod.rs b/src/services/telegram_files/mod.rs index cb2fd2c..e19476c 100644 --- a/src/services/telegram_files/mod.rs +++ b/src/services/telegram_files/mod.rs @@ -1,4 +1,5 @@ use base64::{engine::general_purpose, Engine}; +use once_cell::sync::Lazy; use reqwest::{ header, multipart::{Form, Part}, @@ -8,6 +9,8 @@ use serde::Deserialize; use crate::config::CONFIG; +pub static CLIENT: Lazy = Lazy::new(reqwest::Client::new); + #[derive(Deserialize)] pub struct UploadData { pub chat_id: i64, @@ -29,7 +32,7 @@ pub async fn download_from_telegram_files( CONFIG.files_url ); - let response = reqwest::Client::new() + let response = CLIENT .get(url) .header("Authorization", CONFIG.files_api_key.clone()) .send() @@ -72,7 +75,7 @@ pub async fn upload_to_telegram_files( .text("filename", filename) .part("file", part); - let response = reqwest::Client::new() + let response = CLIENT .post(url) .header("Authorization", CONFIG.files_api_key.clone()) .multipart(form)