forked from Deuxfleurs/tricot
Inverse how priorities work
This commit is contained in:
parent
7dbf848de3
commit
62c745898d
2 changed files with 7 additions and 8 deletions
|
@ -100,15 +100,14 @@ async fn handle(
|
||||||
.map(|prefix| path.starts_with(prefix))
|
.map(|prefix| path.starts_with(prefix))
|
||||||
.unwrap_or(true)
|
.unwrap_or(true)
|
||||||
})
|
})
|
||||||
.min_by_key(|ent| {
|
.max_by_key(|ent| {
|
||||||
(
|
(
|
||||||
ent.priority,
|
ent.priority,
|
||||||
-(ent
|
ent.path_prefix
|
||||||
.path_prefix
|
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.map(|x| x.len() as i32)
|
.map(|x| x.len() as i32)
|
||||||
.unwrap_or(0)),
|
.unwrap_or(0),
|
||||||
ent.calls.load(Ordering::SeqCst),
|
-ent.calls.load(Ordering::SeqCst),
|
||||||
)
|
)
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,7 @@ pub struct ProxyEntry {
|
||||||
// Counts the number of times this proxy server has been called to
|
// Counts the number of times this proxy server has been called to
|
||||||
// This implements a round-robin load balancer if there are multiple
|
// This implements a round-robin load balancer if there are multiple
|
||||||
// entries for the same host and same path prefix.
|
// entries for the same host and same path prefix.
|
||||||
pub calls: atomic::AtomicU64,
|
pub calls: atomic::AtomicI64,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl std::fmt::Display for ProxyEntry {
|
impl std::fmt::Display for ProxyEntry {
|
||||||
|
@ -69,7 +69,7 @@ impl std::fmt::Display for ProxyEntry {
|
||||||
if !self.add_headers.is_empty() {
|
if !self.add_headers.is_empty() {
|
||||||
write!(f, " +Headers: {:?}", self.add_headers)?;
|
write!(f, " +Headers: {:?}", self.add_headers)?;
|
||||||
}
|
}
|
||||||
Ok(())
|
write!(f, " ({})", self.calls.load(atomic::Ordering::Relaxed))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -125,7 +125,7 @@ fn parse_tricot_tag(
|
||||||
path_prefix,
|
path_prefix,
|
||||||
priority,
|
priority,
|
||||||
add_headers: add_headers.to_vec(),
|
add_headers: add_headers.to_vec(),
|
||||||
calls: atomic::AtomicU64::from(0),
|
calls: atomic::AtomicI64::from(0),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue