1 parent
0d9f3ff447
commit
95c0587c1e
26 files changed
+237
-52
No files matched your search
@@ -164,6 +164,45 @@ pub fn mark_failure(
|
||||
Ok(changed > 0)
|
||||
}
|
||||
|
||||
pub fn defer_transient_failure(
|
||||
conn: &Connection,
|
||||
event: &OutboxEvent,
|
||||
error: &str,
|
||||
delay_secs: u64,
|
||||
) -> Result<bool, String> {
|
||||
let available_at = now_epoch().saturating_add(delay_secs.max(1) as i64);
|
||||
let now = now_epoch();
|
||||
let truncated: String = error.chars().take(2048).collect();
|
||||
let changed = match crate::db::pool::configured_backend() {
|
||||
crate::db::pool::DatabaseBackend::Mysql => conn.execute(
|
||||
crate::dbq!(db_search_outbox::Q_004),
|
||||
params![
|
||||
event.attempts,
|
||||
available_at,
|
||||
false,
|
||||
&truncated,
|
||||
now,
|
||||
&event.id,
|
||||
&event.generation
|
||||
],
|
||||
),
|
||||
_ => conn.execute(
|
||||
crate::dbq!(db_search_outbox::Q_004),
|
||||
params![
|
||||
&event.id,
|
||||
&event.generation,
|
||||
event.attempts,
|
||||
available_at,
|
||||
false,
|
||||
&truncated,
|
||||
now
|
||||
],
|
||||
),
|
||||
}
|
||||
.map_err(|e| format!("failed to defer transient search event: {e}"))?;
|
||||
Ok(changed > 0)
|
||||
}
|
||||
|
||||
pub fn clear_before(conn: &Connection, updated_before: i64) -> Result<usize, String> {
|
||||
conn.execute(
|
||||
crate::dbq!(db_search_outbox::Q_007),
|
||||
|
||||
Reference in new issue
Block a user