From f0e287c78ddba5efe9e38141c22053cb4ef92bd3 Mon Sep 17 00:00:00 2001 From: nullishamy Date: Sat, 3 May 2025 22:47:40 +0100 Subject: [PATCH] fix: small bits --- ferri-main/src/federation/inbox.rs | 2 +- ferri-main/src/federation/request_queue.rs | 29 +++++++++++++--------- ferri-server/src/endpoints/api/user.rs | 1 + 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/ferri-main/src/federation/inbox.rs b/ferri-main/src/federation/inbox.rs index f0e35fa..7c441a3 100644 --- a/ferri-main/src/federation/inbox.rs +++ b/ferri-main/src/federation/inbox.rs @@ -32,7 +32,7 @@ pub async fn handle_inbox_request( ) { match req { InboxRequest::Delete(_, _) => { - todo!() + warn!("unimplemented Delete"); }, InboxRequest::Follow { activity, followed, mut conn, outbound } => { let kid = key_id(&followed); diff --git a/ferri-main/src/federation/request_queue.rs b/ferri-main/src/federation/request_queue.rs index 4eef7ef..facf294 100644 --- a/ferri-main/src/federation/request_queue.rs +++ b/ferri-main/src/federation/request_queue.rs @@ -46,22 +46,27 @@ impl RequestQueue { let fut = async move { info!("using config {:#?}, queue is up", config); let mut recv = self.recv; - let http = HttpClient::new(); while let Some(req) = recv.recv().await { info!(?req, "got a message into the queue"); + + // Spawn up a new task so that we can run concurrently and also so we can not die if it panics + tokio::spawn(async { + let http = HttpClient::new(); + + match req { + QueueMessage::Heartbeat => { + info!("heartbeat on queue"); + }, + QueueMessage::Inbound(inbox_request) => { + handle_inbox_request(inbox_request, &http).await; + }, + QueueMessage::Outbound(outbox_request) => { + handle_outbox_request(outbox_request, &http).await; + }, + } + }); - match req { - QueueMessage::Heartbeat => { - info!("heartbeat on queue"); - }, - QueueMessage::Inbound(inbox_request) => { - handle_inbox_request(inbox_request, &http).await; - }, - QueueMessage::Outbound(outbox_request) => { - handle_outbox_request(outbox_request, &http).await; - }, - } } }.instrument(span); diff --git a/ferri-server/src/endpoints/api/user.rs b/ferri-server/src/endpoints/api/user.rs index c07b749..3f60f86 100644 --- a/ferri-server/src/endpoints/api/user.rs +++ b/ferri-server/src/endpoints/api/user.rs @@ -143,6 +143,7 @@ pub async fn statuses( FROM post p INNER JOIN user u on p.user_id = u.id WHERE u.id = ?1 + ORDER BY p.created_at DESC "#, uid) .fetch_all(&mut **db) .await