Compare commits
2 Commits
35d579819c
...
dbb79e60b8
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dbb79e60b8 | ||
|
4527ee7829
|
@@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
## [0.2.0] - 2025-09-25
|
||||
|
||||
### Added
|
||||
- truly cancel if revision isn't as expected
|
||||
- reset after failure
|
||||
- print as well
|
||||
- add publish
|
||||
|
||||
@@ -87,16 +87,20 @@ impl BackendEdge for PostgresBackend {
|
||||
FROM noleader_leaders
|
||||
WHERE
|
||||
key = $1
|
||||
AND revision = $2
|
||||
AND heartbeat >= now() - interval '60 seconds'
|
||||
LIMIT 1;
|
||||
",
|
||||
)
|
||||
.bind(&key.0)
|
||||
.bind(self.revision.load(Ordering::Relaxed) as i64)
|
||||
.fetch_optional(&self.db().await?)
|
||||
.await
|
||||
.context("get noleader key")?;
|
||||
|
||||
let Some(val) = rec else {
|
||||
self.revision.store(0, Ordering::Relaxed);
|
||||
|
||||
anyhow::bail!("key doesn't exist, we've lost leadership status")
|
||||
};
|
||||
|
||||
@@ -105,6 +109,7 @@ impl BackendEdge for PostgresBackend {
|
||||
|
||||
let Ok(id) = uuid::Uuid::parse_str(&val.value) else {
|
||||
tracing::warn!("value is not a valid uuid: {}", val.value);
|
||||
self.revision.store(0, Ordering::Relaxed);
|
||||
return Ok(LeaderValue::Unknown);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user