From 7f8d2e201260e5ee9f409894d3aa730c08125ffa Mon Sep 17 00:00:00 2001 From: Laura Hausmann Date: Thu, 25 Jan 2024 03:29:15 +0100 Subject: [PATCH] Improve QueueService --- Iceshrimp.Backend/Core/Services/QueueService.cs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/Iceshrimp.Backend/Core/Services/QueueService.cs b/Iceshrimp.Backend/Core/Services/QueueService.cs index c561d3eb..0e6d6394 100644 --- a/Iceshrimp.Backend/Core/Services/QueueService.cs +++ b/Iceshrimp.Backend/Core/Services/QueueService.cs @@ -13,7 +13,7 @@ public class QueueService(ILogger logger, IServiceScopeFactory ser while (!token.IsCancellationRequested) { foreach (var _ in _queues.Select(queue => queue.Tick(serviceScopeFactory, token))) { } - await Task.Delay(1000, token); + await Task.Delay(100, token); } } } @@ -40,7 +40,8 @@ public class JobQueue(string name, Func(string name, Func>(); - logger.LogTrace("Job in queue {queue} completed after {ms} ms", name, job.Duration); + logger.LogTrace("Job in queue {queue} completed after {duration} ms, was queued for {queueDuration} ms", + name, job.Duration, job.QueueDuration); } scope.Dispose(); @@ -97,13 +99,16 @@ public abstract class Job { Failed } - public DateTime? DelayedUntil; + public DateTime? DelayedUntil; + public Exception? Exception; public DateTime? FinishedAt; public DateTime QueuedAt = DateTime.Now; + public DateTime? StartedAt; public JobStatus Status = JobStatus.Queued; - public long Duration => (long)((FinishedAt ?? DateTime.Now) - QueuedAt).TotalMilliseconds; + public long Duration => (long)((FinishedAt ?? DateTime.Now) - (StartedAt ?? QueuedAt)).TotalMilliseconds; + public long QueueDuration => (long)((StartedAt ?? DateTime.Now) - QueuedAt).TotalMilliseconds; } //TODO: handle delayed jobs