From ffa8c18efb525eb1d1ff5a6c1df062d8a7101b30 Mon Sep 17 00:00:00 2001 From: Ralf Zerres Date: Wed, 15 Jul 2020 00:04:54 +0200 Subject: [PATCH] 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 --- .../src/services/imports/allianzdirectcall.rs | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/advotracker/src/services/imports/allianzdirectcall.rs b/advotracker/src/services/imports/allianzdirectcall.rs index 5299fb4..65d017e 100644 --- a/advotracker/src/services/imports/allianzdirectcall.rs +++ b/advotracker/src/services/imports/allianzdirectcall.rs @@ -9,6 +9,7 @@ use chrono::{Local, DateTime}; use locales::t; use std::error::Error; use std::collections::HashMap; +use std::time::{Duration, SystemTime}; use tracing::trace; //use crate::db::redis; @@ -23,18 +24,19 @@ pub fn import(p: &mut String, data_list: &mut PolicyDataList, policy_numbers: &mut HashMap, policy_data_count: &mut usize, lang: &String) - -> Result> { + -> Result<(usize, Duration), Box> { use std::fs::File; use std::path::Path; use std::ffi::OsStr; let mut res = t!("csv.import.started", lang); let mut state = t!("state.started", lang); - let dt_start: DateTime = Local::now(); + let time_start = SystemTime::now(); + let datetime: DateTime = 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); // must be a readable file @@ -81,12 +83,11 @@ pub fn import(p: &mut String, data_list: &mut PolicyDataList, count +=1; *policy_data_count = count; - }; - let dt_end: DateTime = Local::now(); - let duration = dt_end.signed_duration_since(dt_start); - + let time_end = SystemTime::now(); + let duration = time_end.duration_since(time_start) + .expect("Clock may have gone backwards"); trace!(target: "advotrackerd", record_count = ?count, duration = ?duration); // Tests @@ -105,7 +106,8 @@ pub fn import(p: &mut String, data_list: &mut PolicyDataList, state = t!("state.finished", lang); res = t!("csv.import.finished", lang); - trace!(target: "advotrackerd", process = ?res, state = ?state, date_stop = ?dt_end.to_string()); + let datetime: DateTime = time_end.into(); + trace!(target: "advotrackerd", process = ?res, state = ?state, date_stop = ?datetime.to_string()); - Ok(count) + Ok((count, duration)) }