From 2096790f3904371c9ff6090f1ff846593c7df9c4 Mon Sep 17 00:00:00 2001 From: Jakob Stendahl Date: Mon, 14 Feb 2022 12:45:55 +0100 Subject: :children_crossing: Catch and deal with database connection error(s) --- src/main.rs | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index 705fe20..02b386f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -117,6 +117,7 @@ async fn fetch_feed(feed_conf: &FeedConf, last_fetch_time: DateTime) -> Res Ok(None) } else { let feed = parser::parse(&resp.bytes().await?[..])?; + debug!("{:#?}", feed); Ok(Some(feed)) } } @@ -177,9 +178,26 @@ async fn get_feed(feed_conf: &FeedConf) -> bool { * This gets all feeds from the database and fetches them once. */ async fn main_loop() { - let mut conn = database::new_conn(); - info!("== Checking for new feed entries now") - for feed in database::get_feeds(&mut conn) { + info!("========== Checking for new feed entries now"); + + let res_conn = database::new_conn(); + if let None = res_conn { + error!("Could not open database connection, waiting until next iteration before trying again!"); + return; + }; + let mut conn = res_conn.unwrap(); + + let res_feeds = database::get_feeds(&mut conn); + + if let None = res_feeds { + error!("Could not get feeds, waiting until next iteration before trying again!"); + return; + } + + let feeds = res_feeds.unwrap(); + info!(" Got {} feeds to check", feeds.len()); + + for feed in feeds { let time_now = Utc::now(); let res = get_feed(&feed).await; if res { -- cgit v1.2.3