mirror of
https://github.com/postgresml/pgcat.git
synced 2026-03-26 02:16:30 +00:00
connection pool
This commit is contained in:
20
src/main.rs
20
src/main.rs
@@ -1,13 +1,17 @@
|
||||
extern crate bytes;
|
||||
extern crate md5;
|
||||
extern crate tokio;
|
||||
extern crate async_trait;
|
||||
extern crate bb8;
|
||||
|
||||
use tokio::net::TcpListener;
|
||||
use bb8::Pool;
|
||||
|
||||
mod client;
|
||||
mod errors;
|
||||
mod messages;
|
||||
mod server;
|
||||
mod pool;
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() {
|
||||
@@ -21,7 +25,12 @@ async fn main() {
|
||||
}
|
||||
};
|
||||
|
||||
let manager = pool::ServerPool::new("127.0.0.1", "5432", "lev", "lev", "lev");
|
||||
let pool = Pool::builder().max_size(15).build(manager).await.unwrap();
|
||||
|
||||
loop {
|
||||
let pool = pool.clone();
|
||||
|
||||
let (socket, addr) = match listener.accept().await {
|
||||
Ok((socket, addr)) => (socket, addr),
|
||||
Err(err) => {
|
||||
@@ -33,19 +42,14 @@ async fn main() {
|
||||
// Client goes to another thread, bye.
|
||||
tokio::task::spawn(async move {
|
||||
println!(">> Client {:?} connected.", addr);
|
||||
|
||||
let pool = pool.clone();
|
||||
|
||||
match client::Client::startup(socket).await {
|
||||
Ok(mut client) => {
|
||||
println!(">> Client {:?} authenticated successfully!", addr);
|
||||
let server =
|
||||
match server::Server::startup("127.0.0.1", "5432", "lev", "lev", "lev")
|
||||
.await
|
||||
{
|
||||
Ok(server) => server,
|
||||
Err(_) => return,
|
||||
};
|
||||
|
||||
match client.handle(server).await {
|
||||
match client.handle(pool).await {
|
||||
Ok(()) => {
|
||||
println!(">> Client {:?} disconnected.", addr);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user