From 07a58dde0288a691c1dca2f28f35a33ff23efc63 Mon Sep 17 00:00:00 2001 From: Alexey Velikiy Date: Sat, 27 Nov 2021 15:16:12 +0300 Subject: [PATCH] DetectionRunner++ --- server/src/services/analytic_service/analytic_service.rs | 1 - server/src/services/analytic_service/detection_runner.rs | 8 ++++++-- server/src/services/analytic_service/types.rs | 1 + 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/server/src/services/analytic_service/analytic_service.rs b/server/src/services/analytic_service/analytic_service.rs index 0183786..d657b82 100644 --- a/server/src/services/analytic_service/analytic_service.rs +++ b/server/src/services/analytic_service/analytic_service.rs @@ -265,7 +265,6 @@ impl AnalyticService { pub async fn serve(&mut self) { // TODO: remove this hack self.consume_request(RequestType::RunLearning); - // TODO: start detection runner if if self.alerting.is_some() { self.run_detection_runner(); } diff --git a/server/src/services/analytic_service/detection_runner.rs b/server/src/services/analytic_service/detection_runner.rs index b2d57d6..7df983d 100644 --- a/server/src/services/analytic_service/detection_runner.rs +++ b/server/src/services/analytic_service/detection_runner.rs @@ -26,20 +26,23 @@ impl DetectionRunner { pub async fn run(&mut self, from: u64) { // TODO: get last detection timestamp from persistance - // TODO: set lst detection from "now" + // TODO: set last detection from "now" if self.running_handler.is_some() { self.running_handler.as_mut().unwrap().abort(); } self.running_handler = Some(tokio::spawn({ // TODO: clone channel + let cfg = self.config.clone(); async move { // AnalyticService::run_learning(tx, cfg, ms, ss).await; // TODO: run detection "from" + // TODO: define window for detection loop { // TODO: run detection periodically // TODO: use interval - sleep(Duration::from_secs(100)).await; + // TODO: sell to config + sleep(Duration::from_secs(cfg.interval)).await; } } })); @@ -48,5 +51,6 @@ impl DetectionRunner { pub async fn set_analytic_unit( analytic_unit: Arc>>, ) { + // TODO: implement } } diff --git a/server/src/services/analytic_service/types.rs b/server/src/services/analytic_service/types.rs index 421172c..7c3c7a9 100644 --- a/server/src/services/analytic_service/types.rs +++ b/server/src/services/analytic_service/types.rs @@ -97,6 +97,7 @@ pub struct DetectionRunnerConfig { // pub sender: mpsc::Sender>>, pub endpoint: String, pub from: u64, + pub interval: u64 } #[derive(Debug)]