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:
@@ -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))
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user