Added rayon
This commit is contained in:
parent
0b9487bde5
commit
63496cfc93
3 changed files with 816 additions and 119 deletions
921
Cargo.lock
generated
921
Cargo.lock
generated
File diff suppressed because it is too large
Load diff
|
|
@ -11,9 +11,10 @@ fluent-templates = "0.13.2"
|
||||||
unic-langid = "0.9.6"
|
unic-langid = "0.9.6"
|
||||||
sys-locale = "0.3.2"
|
sys-locale = "0.3.2"
|
||||||
serde = { version = "1.0", features = ["derive"] }
|
serde = { version = "1.0", features = ["derive"] }
|
||||||
serde_json = "1.0.146"
|
serde_json = "1.0.148"
|
||||||
once_cell = "1.19"
|
once_cell = "1.19"
|
||||||
url = "2.5.7"
|
url = "2.5.7"
|
||||||
ratatui = "0.29.0"
|
ratatui = "0.30.0"
|
||||||
crossterm = "0.29.0"
|
crossterm = "0.29.0"
|
||||||
chrono = "0.4.42"
|
chrono = "0.4.42"
|
||||||
|
rayon = "1.11.0"
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
use crate::core::models::{UnifiedData, UnifiedGroupData};
|
use crate::core::models::{UnifiedData, UnifiedGroupData};
|
||||||
use crate::data::heartbeat::model::HeartbeatEntry;
|
use crate::data::heartbeat::model::HeartbeatEntry;
|
||||||
use crate::i18n::t;
|
use crate::i18n::t;
|
||||||
|
use rayon::prelude::*;
|
||||||
|
|
||||||
#[derive(Debug, Clone, PartialEq)]
|
#[derive(Debug, Clone, PartialEq)]
|
||||||
pub enum MonitorStatus {
|
pub enum MonitorStatus {
|
||||||
|
|
@ -93,8 +94,8 @@ fn get_status_history(heartbeats: &[HeartbeatEntry]) -> Vec<MonitorStatus> {
|
||||||
|
|
||||||
fn add_monitor_view_state(group: UnifiedGroupData) -> Vec<MonitorViewState> {
|
fn add_monitor_view_state(group: UnifiedGroupData) -> Vec<MonitorViewState> {
|
||||||
let mut monitors = Vec::with_capacity(group.monitors.len());
|
let mut monitors = Vec::with_capacity(group.monitors.len());
|
||||||
|
group.monitors.into_par_iter().map(|monitor| {
|
||||||
|
|
||||||
for monitor in group.monitors {
|
|
||||||
let status_history = get_status_history(&monitor.heartbeats);
|
let status_history = get_status_history(&monitor.heartbeats);
|
||||||
|
|
||||||
let status = match monitor.heartbeats.last().map(|h| h.status) {
|
let status = match monitor.heartbeats.last().map(|h| h.status) {
|
||||||
|
|
@ -115,14 +116,14 @@ fn add_monitor_view_state(group: UnifiedGroupData) -> Vec<MonitorViewState> {
|
||||||
.map(|u| u.get_perc_formated())
|
.map(|u| u.get_perc_formated())
|
||||||
.unwrap_or_else(|| t("unknown").to_string());
|
.unwrap_or_else(|| t("unknown").to_string());
|
||||||
|
|
||||||
monitors.push(MonitorViewState {
|
MonitorViewState {
|
||||||
name: monitor.name,
|
name: monitor.name,
|
||||||
status,
|
status,
|
||||||
response_time,
|
response_time,
|
||||||
uptime_24h,
|
uptime_24h,
|
||||||
status_history,
|
status_history,
|
||||||
});
|
}
|
||||||
}
|
}).collect_into_vec(&mut monitors);
|
||||||
|
|
||||||
monitors.sort_by_key(|m| m.name.clone());
|
monitors.sort_by_key(|m| m.name.clone());
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue