From ab4b8903ee9b009c3e1a188f1cfe09e39272d2ee Mon Sep 17 00:00:00 2001 From: Keuin Date: Sun, 27 Mar 2022 22:41:17 +0800 Subject: Close database gracefully when shutting down. --- src/main.rs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index 65e01b2..ad5fdf3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -38,15 +38,17 @@ async fn main() { let bot = Bot::new(config.bot_token); let db = config.db_file.as_str(); - println!("Database: {}", db); - let db: DbPool = database::open(db) - .await.expect(&*format!("cannot open database {}", db)); + info!(db, "Opening database..."); + let db: Arc = Arc::new(database::open(db) + .await.expect(&*format!("cannot open database {}", db))); + info!("Spawning bot coroutine..."); + let bot = Bot::new(config.bot_token); let send_message = warp::path("message") .and(warp::post()) .and(warp::body::content_length_limit(MAX_BODY_LENGTH)) .and(warp::body::json()) - .and(with_db(db.clone())) + .and(with_db(db.deref().clone())) .and(with_bot(bot.clone())) .and_then(web::handler); @@ -60,4 +62,7 @@ async fn main() { tokio::spawn(warp::serve(send_message).run(endpoint)); tokio::signal::ctrl_c().await.unwrap(); + + // gracefully shutdown the database connection + db.deref().close().await; } -- cgit v1.2.3