From 50efb1d519c63a7007a07f11cc8a11487703c70d Mon Sep 17 00:00:00 2001 From: Nutomic <me@nutomic.com> Date: Mon, 26 Jun 2023 18:14:50 +0200 Subject: [PATCH] Fetch community outbox and moderators in parallel (#3360) This will speedup first time fetching of a remote community --- crates/apub/src/objects/community.rs | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/crates/apub/src/objects/community.rs b/crates/apub/src/objects/community.rs index 888a7f45..17476e9f 100644 --- a/crates/apub/src/objects/community.rs +++ b/crates/apub/src/objects/community.rs @@ -140,19 +140,16 @@ impl Object for ApubCommunity { // Fetching mods and outbox is not necessary for Lemmy to work, so ignore errors. Besides, // we need to ignore these errors so that tests can work entirely offline. - group - .outbox - .dereference(&community, context) - .await - .map_err(|e| debug!("{}", e)) - .ok(); + let fetch_outbox = group.outbox.dereference(&community, context); if let Some(moderators) = group.attributed_to { - moderators - .dereference(&community, context) - .await - .map_err(|e| debug!("{}", e)) - .ok(); + let fetch_moderators = moderators.dereference(&community, context); + // Fetch mods and outbox in parallel + let res = tokio::join!(fetch_outbox, fetch_moderators); + res.0.map_err(|e| debug!("{}", e)).ok(); + res.1.map_err(|e| debug!("{}", e)).ok(); + } else { + fetch_outbox.await.map_err(|e| debug!("{}", e)).ok(); } Ok(community) -- 2.44.1