From: Nutomic Date: Mon, 26 Jun 2023 16:14:50 +0000 (+0200) Subject: Fetch community outbox and moderators in parallel (#3360) X-Git-Url: http://these/git/%22https:/join-lemmy.org/%22?a=commitdiff_plain;h=50efb1d519c63a7007a07f11cc8a11487703c70d;p=lemmy.git Fetch community outbox and moderators in parallel (#3360) This will speedup first time fetching of a remote community --- 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)