Пулл подключений в web-api Rust
Пытаюсь добавить пулл подключений (deadpool-postgresql) к своей базе данных внутри web-api приложения. К сожалению пока безуспешно. По примерам из интернета попытался сделать но похоже я что-то плохо понял. Ниже приведу код, подскажите пожалуйста.
В файле main.rc прописано :
let pool = config.configure_pool();
//main
let cors_config = CorsConfig::from_env();
HttpServer::new(move || {
let cors =
CorsConfig::set_cors(&cors_config.protocol, &cors_config.host, &cors_config.port);
let auth = GrantsMiddleware::with_extractor(extract);
App::new()
.app_data(Data::new( AppState{ conn: conn.clone(), pool: pool.clone()}))
.wrap(auth)
.configure(handlers::config)
.wrap(Logger::default())
.wrap(cors)
})
.bind(server_addr)?
.run()
.await
В файле config :
pub struct PostgresConfig {
db_name: String,
db_user: String,
}
impl PostgresConfig {
pub fn configure_pool(&self) -> Pool {
self.db_url.create_pool(Some(Runtime::Tokio1), NoTls).unwrap()
}
}
В файле models:
#[derive(Clone)]
pub struct AppState {
pub conn: DatabaseConnection,
pub pool: Pool,
}
Источник: Stack Overflow на русском