mirror of
https://forgejo.ellis.link/continuwuation/continuwuity.git
synced 2026-11-15 05:06:53 +00:00
feat: Hook transaction senders into health tracking
This commit is contained in:
1 parent
98466e5243
commit
bc1826de66
1 file changed
+13
@@ -393,6 +393,17 @@ impl Service {
|
||||
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 @@ impl Service {
|
||||
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