From 6f86f2afa0f613d78dc746b1d9f711cba578297a Mon Sep 17 00:00:00 2001 From: jellywx Date: Fri, 17 Sep 2021 11:14:51 +0100 Subject: [PATCH] periodically print shard info --- src/main.rs | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index d846844..192665e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -8,7 +8,7 @@ mod framework; mod guild_data; mod sound; -use std::{collections::HashMap, env, sync::Arc}; +use std::{collections::HashMap, env, sync::Arc, time::Duration}; use dashmap::DashMap; use dotenv::dotenv; @@ -310,6 +310,29 @@ async fn main() -> Result<(), Box> { framework_arc.build_slash(&client.cache_and_http.http).await; + let shard_manager = client.shard_manager.clone(); + tokio::spawn(async move { + loop { + { + let mut shards = shard_manager + .lock() + .await + .runners + .lock() + .await + .iter() + .map(|(id, shard)| format!("\t{} {}", id.0, shard.stage)) + .collect::>(); + + shards.sort(); + + info!("Shard Status: [\n{}\n]", shards.join("\n")); + } + + tokio::time::sleep(Duration::from_secs(60)).await; + } + }); + if let Ok((Some(lower), Some(upper))) = env::var("SHARD_RANGE").map(|sr| { let mut split = sr .split(',')