mirror of
https://forgejo.ellis.link/continuwuation/continuwuity/
synced 2026-08-14 06:19:43 +00:00
feat: Hook transaction senders into health tracking
This commit is contained in:
@@ -393,6 +393,17 @@ fn should_attempt_send(
|
||||
dest: &Destination,
|
||||
statuses: &mut CurTransactionStatus,
|
||||
) -> Result<(bool, bool)> {
|
||||
if let Destination::Federation(server_name) = dest {
|
||||
let status = statuses
|
||||
.entry(dest.clone())
|
||||
.or_insert(TransactionStatus::Running);
|
||||
let retry = matches!(status, TransactionStatus::Failed(_, _));
|
||||
return match self.services.federation.retry_after(server_name) {
|
||||
| None => Ok((true, retry)),
|
||||
| Some(t) => Ok((t.as_millis() > 0, retry)),
|
||||
};
|
||||
}
|
||||
|
||||
let (mut allow, mut retry) = (true, false);
|
||||
statuses
|
||||
.entry(dest.clone())
|
||||
@@ -457,6 +468,8 @@ async fn select_edus(&self, server_name: &ServerName) -> Result<(EduVec, u64)> {
|
||||
events.extend(presence.into_iter().flatten());
|
||||
events.extend(receipts.into_iter().flatten());
|
||||
|
||||
// TODO(nex): some EDUs like typing need flattening
|
||||
|
||||
Ok((events, max_edu_count.load(Ordering::Acquire)))
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user