This commit is contained in:
Mateusz Gruszczyński committed 2026-10-06 11:29:34 +02:00
1 parent cf25423dde
commit 52cc137c73
50 files changed
+410 -172

No files matched your search

+8 -1
View File
@@ -347,7 +347,14 @@ pub async fn health_loop(app: Weak<crate::runtime::App>, shutdown: CancellationT
let snapshot = app.config.load_full();
let members: Vec<_> = snapshot.pools.iter().flat_map(|pool|
pool.members.iter().map(move |member| (member, &pool.settings.health_check))).collect();
for (member, _) in &members { member.state.sample_traffic(); }
for (member, _) in &members {
member.state.sample_traffic();
// Time-based pool recycling must not depend on receiving a
// request; otherwise idle backends can stay on generation 0
// indefinitely after the configured recycle age elapses.
member.backend.client.maintain_rotation();
member.backend.websocket_client.maintain_rotation();
}
// Rotate the bounded probe window: slow first members must not
// starve later pools when all intervals equal their timeouts.
let start = cursor;