diff --git a/src/main.rs b/src/main.rs index 77cf127..ac216f8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,7 +5,7 @@ use poem_openapi::OpenApiService; mod user; use time::{format_description, macros::offset}; -use tokio::sync::Mutex; +use tokio::sync::RwLock; use tracing::{debug, Level}; use tracing_appender::non_blocking::WorkerGuard; use tracing_subscriber::{ @@ -20,7 +20,7 @@ const FORMAT_STR: &str = "[year]-[month]-[day] [hour]:[minute]:[second]"; extern crate lazy_static; lazy_static! { - static ref CACHE: Mutex> = Mutex::new(HashMap::new()); + static ref CACHE: RwLock> = RwLock::new(HashMap::new()); } #[tokio::main] @@ -85,7 +85,7 @@ async fn refresh_token() { interval = 5; CACHE - .lock() + .write() .await .insert("token".to_string(), format!("token{}", count)); } diff --git a/src/user/api.rs b/src/user/api.rs index 4ff2dd2..83e9da8 100644 --- a/src/user/api.rs +++ b/src/user/api.rs @@ -22,7 +22,7 @@ impl Api { let Token(token) = data.0; assert_eq!(token, "token123"); - let m_guard = CACHE.lock().await; + let m_guard = CACHE.read().await; let rt = m_guard.get(&"token".to_string()).unwrap(); info!("refresh_token is {}", rt);