services: imports: refine to use SystemTime

* Use standard library to calculate SystemTime and Duration
* exporse results to be accessible in orbtk views

Signed-off-by: Ralf Zerres <ralf.zerres@networkx.de>
This commit is contained in:
2020-07-15 00:04:54 +02:00
parent 3d913e7127
commit ffa8c18efb

View File

@@ -9,6 +9,7 @@ use chrono::{Local, DateTime};
use locales::t; use locales::t;
use std::error::Error; use std::error::Error;
use std::collections::HashMap; use std::collections::HashMap;
use std::time::{Duration, SystemTime};
use tracing::trace; use tracing::trace;
//use crate::db::redis; //use crate::db::redis;
@@ -23,18 +24,19 @@ pub fn import(p: &mut String, data_list: &mut PolicyDataList,
policy_numbers: &mut HashMap<usize, PolicyCode>, policy_numbers: &mut HashMap<usize, PolicyCode>,
policy_data_count: &mut usize, policy_data_count: &mut usize,
lang: &String) lang: &String)
-> Result<usize, Box<dyn Error>> { -> Result<(usize, Duration), Box<dyn Error>> {
use std::fs::File; use std::fs::File;
use std::path::Path; use std::path::Path;
use std::ffi::OsStr; use std::ffi::OsStr;
let mut res = t!("csv.import.started", lang); let mut res = t!("csv.import.started", lang);
let mut state = t!("state.started", lang); let mut state = t!("state.started", lang);
let dt_start: DateTime<Local> = Local::now(); let time_start = SystemTime::now();
let datetime: DateTime<Local> = time_start.into();
trace!(target: "advotrackerd", process = ?res, state = ?state, date_start = ?dt_start.to_string()); trace!(target: "advotrackerd", process = ?res, state = ?state, date_start = ?datetime.to_string());
// Note: slash syntax also workd on Windows! // Note: slash syntax also works on Windows!
let path = Path::new(p); let path = Path::new(p);
// must be a readable file // must be a readable file
@@ -81,12 +83,11 @@ pub fn import(p: &mut String, data_list: &mut PolicyDataList,
count +=1; count +=1;
*policy_data_count = count; *policy_data_count = count;
}; };
let dt_end: DateTime<Local> = Local::now(); let time_end = SystemTime::now();
let duration = dt_end.signed_duration_since(dt_start); let duration = time_end.duration_since(time_start)
.expect("Clock may have gone backwards");
trace!(target: "advotrackerd", record_count = ?count, duration = ?duration); trace!(target: "advotrackerd", record_count = ?count, duration = ?duration);
// Tests // Tests
@@ -105,7 +106,8 @@ pub fn import(p: &mut String, data_list: &mut PolicyDataList,
state = t!("state.finished", lang); state = t!("state.finished", lang);
res = t!("csv.import.finished", lang); res = t!("csv.import.finished", lang);
trace!(target: "advotrackerd", process = ?res, state = ?state, date_stop = ?dt_end.to_string()); let datetime: DateTime<Local> = time_end.into();
trace!(target: "advotrackerd", process = ?res, state = ?state, date_stop = ?datetime.to_string());
Ok(count) Ok((count, duration))
} }