Files
Aether/apps/aether-gateway/src/maintenance/runtime/stats_daily.rs
T

25 lines
758 B
Rust
Raw Normal View History

2026-05-05 18:27:36 +08:00
use aether_data::{DataLayerError, StatsDailyAggregationInput, StatsDailyAggregationSummary};
use chrono::Utc;
use crate::data::GatewayDataState;
2026-05-05 18:27:36 +08:00
use super::{stats_aggregation_target_day, system_config_bool};
pub(super) async fn perform_stats_aggregation_once(
data: &GatewayDataState,
2026-05-05 18:27:36 +08:00
) -> Result<Option<StatsDailyAggregationSummary>, DataLayerError> {
if !data.has_stats_daily_aggregation_backend() {
return Ok(None);
2026-05-05 18:27:36 +08:00
}
if !system_config_bool(data, "enable_stats_aggregation", true).await? {
return Ok(None);
}
let now_utc = Utc::now();
2026-05-05 18:27:36 +08:00
data.aggregate_stats_daily(&StatsDailyAggregationInput {
target_day_utc: stats_aggregation_target_day(now_utc),
aggregated_at: now_utc,
})
2026-05-05 18:27:36 +08:00
.await
}