0.29.7
This commit is contained in:
1 parent
ad95bfb050
commit
1431dd47f0
62 files changed
+1360
-198
No files matched your search
@@ -345,8 +345,10 @@ pub async fn health_loop(app: Weak<crate::runtime::App>, shutdown: CancellationT
|
||||
_ = interval.tick() => {
|
||||
let Some(app) = app.upgrade() else { break; };
|
||||
let snapshot = app.config.load_full();
|
||||
// Own an Arc for each candidate. JoinSet tasks require an
|
||||
// owned, 'static member rather than a reference into snapshot.
|
||||
let members: Vec<_> = snapshot.pools.iter().flat_map(|pool|
|
||||
pool.members.iter().map(move |member| (member, &pool.settings.health_check))).collect();
|
||||
pool.members.iter().map(move |member| (Arc::clone(member), pool.settings.health_for(&member.definition)))).collect();
|
||||
for (member, _) in &members {
|
||||
member.state.sample_traffic();
|
||||
// Time-based pool recycling must not depend on receiving a
|
||||
@@ -361,9 +363,9 @@ pub async fn health_loop(app: Weak<crate::runtime::App>, shutdown: CancellationT
|
||||
for offset in 0..members.len() {
|
||||
if checks.len() >= 16 { break; }
|
||||
let index = (start + offset) % members.len();
|
||||
let (member, health) = members[index];
|
||||
let (member, health) = &members[index];
|
||||
if member.definition.enabled && member.state.claim_probe(health) {
|
||||
checks.spawn(probe(member.clone(), health.clone()));
|
||||
checks.spawn(probe(Arc::clone(member), health.clone()));
|
||||
cursor = (index + 1) % members.len();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user