diff --git a/src/src/StevesBot.Webhook/YouTube/SubscriptionWorker.cs b/src/src/StevesBot.Webhook/YouTube/SubscriptionWorker.cs index 5bb087b..e9c9cab 100644 --- a/src/src/StevesBot.Webhook/YouTube/SubscriptionWorker.cs +++ b/src/src/StevesBot.Webhook/YouTube/SubscriptionWorker.cs @@ -72,6 +72,8 @@ internal sealed class SubscriptionWorker( private async Task ProcessSubscriptionQueueAsync(CancellationToken cancellationToken) { + var tasksToRequeue = new List(); + while (_subscriptionQueue.TryDequeue(out var task)) { // We will attempt to process the task @@ -90,7 +92,7 @@ internal sealed class SubscriptionWorker( now ); - _subscriptionQueue.Enqueue(task); + tasksToRequeue.Add(task); continue; } @@ -111,6 +113,8 @@ internal sealed class SubscriptionWorker( _logger.LogWarning("Failed to subscribe to topic: {TopicUrl}", task.TopicUrl); } + + tasksToRequeue.ForEach(_subscriptionQueue.Enqueue); } public void Dispose()