mirror of
https://forgejo.ellis.link/continuwuation/continuwuity.git
synced 2026-11-13 12:16:54 +00:00
feat: Lower default backoff base for a gentler backoff curve
This commit is contained in:
1 parent
b73b3532f2
commit
9af60bcf62
2 files changed
+23
-18
No files matched your search
@@ -688,7 +688,7 @@ pub struct Config {
|
||||
/// either the remote server becomes healthy, or the value is clamped to
|
||||
/// `sender_retry_backoff_limit`.
|
||||
///
|
||||
/// default: 60
|
||||
/// default: 10
|
||||
#[serde(default = "default_sender_retry_backoff_base")]
|
||||
pub sender_retry_backoff_base: u64,
|
||||
|
||||
@@ -2988,7 +2988,7 @@ fn default_sender_timeout() -> u64 { 180 }
|
||||
|
||||
fn default_sender_idle_timeout() -> u64 { 180 }
|
||||
|
||||
fn default_sender_retry_backoff_base() -> u64 { 60 }
|
||||
fn default_sender_retry_backoff_base() -> u64 { 10 }
|
||||
|
||||
fn default_sender_retry_backoff_limit() -> u64 { 86400 }
|
||||
|
||||
|
||||
@@ -423,22 +423,27 @@ impl Service {
|
||||
if let Some(retry_after) = self.services.federation.retry_after(server_name) {
|
||||
allow = retry_after.is_zero();
|
||||
}
|
||||
statuses.entry(dest.clone()).and_modify(|e| match e {
|
||||
| TransactionStatus::Running | TransactionStatus::Retrying(_) => {
|
||||
allow = false; // already running
|
||||
trace!("Transaction is already running for {dest:?}");
|
||||
},
|
||||
| TransactionStatus::Failed(tries, _) => {
|
||||
if allow {
|
||||
*e = TransactionStatus::Retrying(*tries);
|
||||
trace!("Previous transaction failed for {dest:?} ({e:?}), will retry");
|
||||
}
|
||||
retry = true;
|
||||
},
|
||||
}).or_insert_with(|| {
|
||||
trace!("Inserting running status for {dest:?}");
|
||||
TransactionStatus::Running
|
||||
});
|
||||
statuses
|
||||
.entry(dest.clone())
|
||||
.and_modify(|e| match e {
|
||||
| TransactionStatus::Running | TransactionStatus::Retrying(_) => {
|
||||
allow = false; // already running
|
||||
trace!("Transaction is already running for {dest:?}");
|
||||
},
|
||||
| TransactionStatus::Failed(tries, _) => {
|
||||
if allow {
|
||||
*e = TransactionStatus::Retrying(*tries);
|
||||
trace!(
|
||||
"Previous transaction failed for {dest:?} ({e:?}), will retry"
|
||||
);
|
||||
}
|
||||
retry = true;
|
||||
},
|
||||
})
|
||||
.or_insert_with(|| {
|
||||
trace!("Inserting running status for {dest:?}");
|
||||
TransactionStatus::Running
|
||||
});
|
||||
return Ok((allow, retry));
|
||||
}
|
||||
statuses
|
||||
|
||||
Reference in new issue
Block a user