From bedc81e973cc12ad343d8a9e165340ac3eee3b2a Mon Sep 17 00:00:00 2001 From: mujunxiang <1948535941@qq.com> Date: Tue, 3 Dec 2024 10:14:46 +0800 Subject: [PATCH] scanner status command(3) Signed-off-by: mujunxiang <1948535941@qq.com> --- ecstore/src/heal/data_scanner.rs | 4 ++-- ecstore/src/heal/data_scanner_metric.rs | 7 ++----- rustfs/src/admin/handlers.rs | 10 ++++++---- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/ecstore/src/heal/data_scanner.rs b/ecstore/src/heal/data_scanner.rs index c428d1993..8562d32df 100644 --- a/ecstore/src/heal/data_scanner.rs +++ b/ecstore/src/heal/data_scanner.rs @@ -9,11 +9,11 @@ use std::{ atomic::{AtomicBool, AtomicU32, AtomicU64, Ordering}, Arc, }, - time::{Duration, SystemTime, UNIX_EPOCH}, + time::{Duration, SystemTime}, }; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; -use chrono::{DateTime, TimeZone, Utc}; +use chrono::{DateTime, Utc}; use lazy_static::lazy_static; use rand::Rng; use rmp_serde::{Deserializer, Serializer}; diff --git a/ecstore/src/heal/data_scanner_metric.rs b/ecstore/src/heal/data_scanner_metric.rs index 628f92774..b0f364bdd 100644 --- a/ecstore/src/heal/data_scanner_metric.rs +++ b/ecstore/src/heal/data_scanner_metric.rs @@ -1,4 +1,4 @@ -use chrono::{DateTime, Utc}; +use chrono::Utc; use common::globals::GLOBAL_Local_Node_Name; use common::last_minute::{AccElem, LastMinuteLatency}; use lazy_static::lazy_static; @@ -10,10 +10,7 @@ use std::sync::Once; use std::time::{Duration, UNIX_EPOCH}; use std::{ collections::HashMap, - sync::{ - atomic::{AtomicU32, Ordering}, - Arc, - }, + sync::{atomic::Ordering, Arc}, time::SystemTime, }; use tokio::sync::RwLock; diff --git a/rustfs/src/admin/handlers.rs b/rustfs/src/admin/handlers.rs index 519e5efc4..1419beaed 100644 --- a/rustfs/src/admin/handlers.rs +++ b/rustfs/src/admin/handlers.rs @@ -39,10 +39,9 @@ use std::task::{Context, Poll}; use std::time::Duration as std_Duration; use std::u64; use time::{Duration, OffsetDateTime}; -use tokio::spawn; -use tokio::sync::mpsc::error::TryRecvError; -use tokio::sync::mpsc::{self, Receiver}; +use tokio::sync::mpsc::{self}; use tokio::time::interval; +use tokio::{select, spawn}; use tokio_stream::wrappers::ReceiverStream; use tracing::{error, info, warn}; @@ -446,7 +445,10 @@ impl Operation for MetricsHandler { break; } - interval.tick().await; + select! { + _ = tx.closed() => { return; } + _ = interval.tick() => {} + } } });