Iceshrimp.NET/Iceshrimp.Backend/Core/Queues/DeliverQueue.cs
2024-01-27 01:18:21 +01:00

20 lines
No EOL
739 B
C#

using Iceshrimp.Backend.Core.Services;
namespace Iceshrimp.Backend.Core.Queues;
public class DeliverQueue {
public static JobQueue<DeliverJob> Create() {
return new JobQueue<DeliverJob>("deliver", DeliverQueueProcessor, 4);
}
private static async Task DeliverQueueProcessor(DeliverJob job, IServiceProvider scope, CancellationToken token) {
var logger = scope.GetRequiredService<ILogger<DeliverQueue>>();
var httpClient = scope.GetRequiredService<HttpClient>();
logger.LogDebug("Delivering activity to: {uri}", job.Request.RequestUri!.AbsoluteUri);
await httpClient.SendAsync(job.Request, token);
}
}
public class DeliverJob(HttpRequestMessage request) : Job {
public readonly HttpRequestMessage Request = request;
}