mirror of
https://forgejo.ellis.link/continuwuation/continuwuity.git
synced 2026-11-13 12:16:54 +00:00
feat: Update servers-in-backoff command to annotate stale info
This commit is contained in:
1 parent
ef5bf7c977
commit
9ed8c230fa
2 files changed
+21
-14
No files matched your search
+12
-10
@@ -1243,16 +1243,14 @@ impl crate::Context<'_> {
|
||||
room_id: Option<OwnedRoomId>,
|
||||
name: Option<OwnedServerName>,
|
||||
) -> Result {
|
||||
let backoff_map = {
|
||||
// We can't send the backoff map to another thread, so we clone it here.
|
||||
let map = self.services.federation.remote_health.read();
|
||||
map.clone()
|
||||
};
|
||||
let backoff_map = self.services.federation.remote_health();
|
||||
|
||||
if backoff_map.is_empty() {
|
||||
return Err!("No servers in backoff.");
|
||||
}
|
||||
|
||||
let stale_map = self.services.federation.stale_destinations();
|
||||
|
||||
if let Some(specific_server_name) = name {
|
||||
let entry = backoff_map.get(&specific_server_name);
|
||||
return match entry {
|
||||
@@ -1267,9 +1265,9 @@ impl crate::Context<'_> {
|
||||
};
|
||||
}
|
||||
|
||||
self.write_str("| Server Name | Retries | Next connection attempt |\n")
|
||||
self.write_str("| Server Name | Retries | Next connection attempt | Is stale |\n")
|
||||
.await?;
|
||||
self.write_str("| ----------- | ------- | ----------------------- |\n")
|
||||
self.write_str("| ----------- | ------- | ----------------------- | -------- |\n")
|
||||
.await?;
|
||||
|
||||
if let Some(specific_room) = room_id {
|
||||
@@ -1277,15 +1275,19 @@ impl crate::Context<'_> {
|
||||
self.services.rooms.state_cache.room_servers(&specific_room);
|
||||
while let Some(server_name) = servers_in_room.next().await {
|
||||
let Some((retries, retry_at)) = backoff_map.get(&server_name) else { continue };
|
||||
self.write_str(&format!("| {server_name} | {retries} | {retry_at} |\n"))
|
||||
.await?;
|
||||
let is_stale = if stale_map.contains(&server_name) { "Yes" } else { "No" };
|
||||
self.write_str(&format!(
|
||||
"| {server_name} | {retries} | {retry_at} | {is_stale} |\n"
|
||||
))
|
||||
.await?;
|
||||
}
|
||||
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
for (server_name, (retries, retry_at)) in &backoff_map {
|
||||
self.write_str(&format!("| {server_name} | {retries} | {retry_at} |\n"))
|
||||
let is_stale = if stale_map.contains(server_name) { "Yes" } else { "No" };
|
||||
self.write_str(&format!("| {server_name} | {retries} | {retry_at} | {is_stale} |\n"))
|
||||
.await?;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user