diff --git a/src/config.rs b/src/config.rs index bab2dc5..3b581f0 100644 --- a/src/config.rs +++ b/src/config.rs @@ -42,6 +42,7 @@ pub struct Configuration { http: Option, log_level: Option, db_path: Option, + cleanup_interval: Option, } #[derive(Debug)] @@ -94,6 +95,10 @@ impl Configuration { pub fn get_db_path(&self) -> &Option { &self.db_path } + + pub fn get_cleanup_interval(&self) -> &Option { + &self.cleanup_interval + } } impl Default for Configuration { @@ -107,6 +112,7 @@ impl Default for Configuration { }, http: None, db_path: None, + cleanup_interval: None, } } } diff --git a/src/main.rs b/src/main.rs index 3fcc976..01a582c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -149,10 +149,14 @@ fn main() { Some(db_path) => { let db_p = db_path.clone(); let tracker_clone = tracker.clone(); + let cleanup_interval = match *cfg.get_cleanup_interval() { + Some(v) => v, + None => 10 * 60, + }; std::thread::spawn(move || { loop { - std::thread::sleep(std::time::Duration::new(120, 0)); + std::thread::sleep(std::time::Duration::new(cleanup_interval, 0)); debug!("periodically saving database."); tracker_clone.periodic_task(db_p.as_str()); debug!("database saved.");